• DAY1-GO初识(概述)


    一、概述

    1、特征

    1.1、语法简单:规则严谨、保留指针、但默认阻止指针运算、将切片和字典作为内置类型、更好的维护性;

    1.2、并发模型:运行时用GOroutine,一个关键字、简单而自然;搭配channel实现CSP模型;

    1.3、内存分配:内存分配器完整保留了tcmalloc的原始架构,使用cache提供无锁分配、多个centrl在不通线程间平衡内存单元复用、heap管理大块内存;

    1.4、垃圾回收:并发标记,逐步引入三色标记、写屏障;

    2、简介

    2.1、源文件:

    源码文件使用UTF-8编码,对Unicode支持良好。package声明所属包名称,以".go"作为文件扩展名,语句结束分号默认省略,入口函数main没有参数,必须放在main包中,

    用import导入标准库或第三方包

    示例:

    package main

    import (

      "fmt"

    func main() {

      fmt.Println("hello,world!")

    }

    可直接运行,或编译为可执行文件

    go run main.go

    2.2、变量

    使用var定义变量,编译器总是被初始化为零值,避免出现意外状况,

    示例一:

    package main

    func main() {

      var x int32

      var s = "hello,world!"

      println(x,s)

    }

    在函数内部,还可省略var关键之,使用更简单的定义模式

    示例二:

    package main

    func main() {

      x := 100  //注意,赋值符号不同

      println(x)

    }

    2.3、表达式

    GO仅有三种流控制语句

    if 示例:

    package main
    func main() {
      x := 0
      if x > 0 {
        println("x")
      } else if x < 0 {
        println("-x")
      } else {
        println("0")
      }
    }
    switch示例:
    package main
    func main() {
        x := 100
        switch {
            case x > 0:
                println("x")
            case x < 0:
                println("-x")
            default:
                println("0")
        }
    }
    for 示例:
    package main
    // func main() {
    //  for i :=0; i < 5; i++ {
    //      println(i)
    //  }
    // }

    // func main() {
    //  for i :=4; i >= 0; i-- {
    //      println(i)
    //  }
    // }

    // func main () {
    //  x := 0
    //  for x < 5 {     //相当于 while (x < 5) {...}   
    //      println(x)
    //      x ++
    //  }
    // }

    // func main() {
    //  x := 4
    //  for {
    //      println(x)  //相当于 while true {...}
    //      x--
    //      if x < 0 {
    //          break
    //      }
    //  }
    // }

    // 在迭代遍历时, for...range 除元素外,还可返回索引
    func main() {
        x := []int{100,101,102}
        for i, n := range x {
            println(i, ":", n)
        }
    }
    输出:
     
  • 相关阅读:
    从进入这里,没有写过什么文章,现在开始吧
    24)
    23)
    22)
    21)
    20)
    19)
    18)
    17)
    16)
  • 原文地址:https://www.cnblogs.com/willpower-chen/p/7941170.html
Copyright © 2020-2023  润新知