博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go学习随笔(一)常量/转义字符/赋值/注释/枚举/关键字枚举/变量/局部变量声明/匿名函数/init函数
阅读量:3906 次
发布时间:2019-05-23

本文共 1857 字,大约阅读时间需要 6 分钟。

1.常量

 使用 const 定义 格式如:

const identifier[type] = value//例如const pi float32 = 3.1415926....const hello = "你好Go!"const return = tureconst 人数 = 100

2.转义字符

Go使用反斜杠作为转义字符

例如 :换行符(\n), 制表符(\t)等等

3.赋值

func main() {    a := 2   // :=  是GO的一种简写 , 表示函数内部声明并赋值    b := 20    c = a    fmt.Println(a,b,c)}注意:    d := n++    if n++ == 1 {}    ++n 上门这三个都是错误的演示在Go中 ++和--是语句,不是表达式,没有运算符优先级之说还有Go语言不支持重载

4.注释

就是平常的三种 1.  //行注释2.  /*这也是一个注释*/3.  /*    这是一个Go的注释*/

5.枚举

常量可以作为枚举const(    con = 0    opne = 1    close = 2)现在数字0,1,2分别代表控制,打开,关闭

关键字实现枚举

package main import("fmt")const(    a = iote   //a == 0    b          //b == 1 ,隐式使用iota关键字,实际等同于 b == iota    c          //c == 2  ,c == iota    d,e,f = iota, iota,iota  //d=3,e=3,f=3 ,同一行值相同,此处不能只写一个iota    g = iota   //g = 4    h = "h"    //h = "h" ,单独赋值,iota依旧等于5    i          //i = "h" ,默认使用上面的赋值,iota依旧递增为6    j = iota   //j = 7  )const z = iota  //每个单独定义的const常良中,iota都会重置,此时z=0func main(){    fmt.Println(a,b,c,d,e,f,g,h,i,j)}

6.变量

声明变量var a int  //定义一个变量a为int型var b bool //定义一个变量b为bool型var a, b int //定义两个变量为int型也可以这样var(    a,b int     c bool    d string    )//多个变量同时声明和赋值var a, b, c = 1, 2, 3注意:下面这种只能在函数体内使用   x,y = 5,6

6.1 局部变量声明

变量的声明有两种,上面的是一种,另一种是使用:=符号例如:a := 1    //等同于 var a = 1Go语言编译器能智能判别类型,不用写a变量的类型也可以的a := 1     /* 1. 这种全局变量的声明是错误的*/var a = 1   /* 2. 全局变量声明应该用这种形式*a := 10/* 3.前面已经定义了变量a ,同一个代码块中不能重复再次定义*/func main(){    b:=2 //只能在函数体中使用这种语法    a:=100 //把100赋给a没问题    a:=hello //函数体内部属于另一个代码块,可以再次声明变量a,改变变量类型        fmt.Println(a,b,c)    }var c = 0 //全局变量不限位置,在函数体外即可/*    返回    100 , 2 ,0*/

7.匿名函数

func main() {	x := 4	fmt.Println("休息休息")}注意!!!!//这段代码会报错局部变量有个特点就是定义了必须使用如果定义了x并没有用,编译会出错,即使是函数赋值也会出错

8. init函数

package mainimport (	"fmt"	"math")var pi float64func init() {	pi = 4 * math.Atan(1) //在init函数中计算pi的值}func main() {	Dpi := pi * pi	fmt.Println(pi, Dpi)}返回:3.141592653589793 9.869604401089358

 

转载地址:http://mpqen.baihongyu.com/

你可能感兴趣的文章
以太坊源码分析---go-ethereum之rpc
查看>>
系统工程的本质
查看>>
系统工程新发展——体系
查看>>
工程实践中的体系与系统
查看>>
体系生命力理论框架
查看>>
认知仿真:是复杂系统建模的新途径吗
查看>>
大数据时代下数据挖掘技术的应用
查看>>
大数据分析与应用技术创新平台
查看>>
安全态势感知
查看>>
菜鸟下一代分布式体系架构的设计理念
查看>>
漫谈 · 比知行合一更重要的是意行合一
查看>>
漫谈 · 软件设计中的具象化
查看>>
漫谈 · 软件中的不确定
查看>>
癃闭病以及其常见药方
查看>>
人生就是不断学习和修行-2018年个人总结
查看>>
开源代码学习技巧-Nats源码原理分析
查看>>
开源代码学习-nsq(v0.1.1版本)源码分析
查看>>
开源代码学习-nsq(v0.1.5版本)源码分析
查看>>
开源代码protoactor-go[e866f39]源码分析
查看>>
开源代码protoactor-go源码分析-async schedule
查看>>