zoukankan      html  css  js  c++  java
  • 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)
        }
    }
    输出:
     
  • 相关阅读:
    Can't remove netstandard folder from output path (.net standard)
    website项目的reference问题
    The type exists in both DLLs
    git常用配置
    Map dependencies with code maps
    How to check HTML version of any website
    Bootstrap UI 编辑器
    网上职位要求对照
    Use of implicitly declared global variable
    ResolveUrl in external JavaScript file in asp.net project
  • 原文地址:https://www.cnblogs.com/willpower-chen/p/7941170.html
Copyright © 2011-2022 走看看