go入门

一.第一个程序

//每个go源码的开头都是package,表示所属的包
//main表示可编译成二进制文件
package main

//导入格式化包,不用时会报错
//不能使用单引号
import "fmt"

//main主函数入口,不能带参数,不能定义返回值
//func声明函数放入关键字
//其那边大阔号不能单起一行
func main(){
    fmt.Println("wocao go!")
    }
// go单行注释,与java和C++一样
/* 多行注释 */

二.基础语法

  1.命名

  • go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则
  • 一个名字必须以一个字母或下划线开头,后面可以跟任意数量的字母、数字或下划线
  • go区分大小写,hello Hello不同
  • go语言中有25个关键字,不能用于自定义名字

    关键字:

break        default          func           interface         select
case         defer            go             map               struct
chan         else             goto           package           switch
const        fallthrough      if             range             type
continue     for              import         return            var

     还有30多个预定义的名字,用于内建的常量、类型和函数

内建常量:
    true false iota nil
内建类型:
    int int8 int16 int32 int64
    uint uint8 uint16 uint32 uint64 uintptr
    float32 float64 complex128 complex64
    bool byte rune string error
内建函数:
    make len cap new append copy close delete
    complex real imag
    panic recover

  2.变量

    变量的声明:

package main

import "fmt"

func main(){
    var a int
    var b int
    //一次性声明多个变量
    var(
        c int
        d int
    )
    //变量都会有一个初始0值
    fmt.Print(a,b,c,d)
}

//运行结果
//0 0 0 0
//变量都会初始值为0

    变量的初始化:

package main

import (
    "fmt"
    "reflect"
)

func main()  {
    //声明并初始化
    var a int=10
    var b int=10
    // := 是声明并初始化
    c :=30

    //利用反射查看c的类型
    fmt.Print("c的类型是:",reflect.TypeOf(c))
    fmt.Print(a,b,c)

}

//结果
//c的类型是:int 10 10 30

     变量赋值:

package main

import "fmt"

func main() {
    //直接赋值
    var a int
    a = 10
    b := 20
    //多重赋值
    var c, d, e int
    c, d, e = 10, 20, 30

    fmt.Print(a, b,c,d,e)

}

//注意:声明的变量不调用会报错

     匿名变量

      _代表特殊的变量名,作用是占位

package main

import "fmt"

//int,string为返回值类型
func test()(int,string){
    return 666,"我有大懒觉"
}

//调用并把返回值赋予——和s func main(){ _,s:
=test() fmt.Print(s) }

  3.常量与枚举

   声明常量
   iota常量生成器
枚举类型

猜你喜欢

转载自www.cnblogs.com/tjp40922/p/10801144.html