Golang关键字和预定义标识符


Golang关键字和预定义标识符

  golang一共有25个关键字,我们只能按照规则使用。
  另外golang还有一些预定义标识符,除了按照规则使用外,我们还能当作普通的变量名、方法名等字段使用,但不建议这样做,避免混淆。

关键字

package:定义包名
import:引用包,golang目前是不支持循环引用的
    A import B,B 不能再引用A;
    A import B,B import C,C import A 也是不可以的。
struct:定义结构体
interface:定义接口
type:声明结构体,接口,类型和类型别名。
  声明一个类型,是作为一个新的类型使用,虽然本质上和原类型没有区别,但是无法直接当作原类型使用,而别名和原类型使用起来完全相同。

type A = int //int的别名
type B int //新类型b

var a A = 1
var b B = 1

func GetSize(i int) {
println(unsafe.Sizeof(i))
}
//64位机
GetSize(a) //输出8
GetSize(b) //无法通过编译,不能直接把B类型当作int使用
GetSize(int(b)) //输出8,可以强制转换
GetSize(*(*int)(unsafe.Pointer(&b)))//输出8,Pointer当然也是可以的

func:定义方法
return:返回当前方法
const:定义常量(有些语言定义常量不支持表达式,golang是可以的,但是表达式中的值也必须是常量)
var:定义变量
go:开启goroutine协程,后面直接跟方法调用
if,else:条件语句
  if可以if 表达式; 判断语句 ,比如下面段代码

//获取hash字典中的值
func GetValue(key string, dic map[string]string) string {
if v, ok := dic[key]; ok {
return v
}
return ""
}

map:哈希字典
chan:channel管道,主要用于不同协程直接通信,类似linux管道。
defer:在方法结束(包括异常)时调用,同一个方法内可以定义多个defer,调用顺序和定义相反。注意,defer后跟的表达式是定义时计算的,不是调用时计算的:

func Defer() {
i := 1
defer println("first", i+1)
i += 1
defer println("second", i)
}
//输出
//second 2
//first 2

for:循环控制
select:和case配合使用,监听chan
switch: 选择控制,和case配合使用
case:switch和select中的单项
default:switch选项控制默认值
fallthrough:switch中继续执行下一个case内的指令
break:跳出当前循环、switch、select,switch和select默认break,如果不希望break,使用fallthrough;以上这些结构可以用标签命名,break+标签名,可以跳出多层结构。
continue:跳过循环语句中剩下的指令,直接进入下一次循环。continue也可以使用标签,忽略当前循环结构,直接继续执行标签指定的循环。
goto:无条件地转移到过程中指定的行,不推荐使用,可控制的小范围内使用。
range:用来迭代数组、切片、map、chan

预定义标识符

预定义标识符全部列出在源码的builtin包中,只有一个builtin.go文件,并且都有注释说明,大家可以自行阅读。

参考资料:

    关键字:https://www.runoob.com/go/go-basic-syntax.html
    golang源码:https://github.com/golang/go

ps: 欢迎大家指出文中错误和不足,提出意见,以免误导。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

Golang关键字和预定义标识符

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » Golang关键字和预定义标识符
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏