本文介绍一些Go语言的基础语法.
先来看一个简单的go语言代码:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法.
go语言中格式化输出可以使用 fmt 和 log 这两个标准库,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包.
log包实现了简单的日志服务,也提供了一些格式化输出的方法.
下面来介绍一下go的数据类型
下表列出了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值.
常量是在程序编译时就确定下来的值,程序运行时无法改变.
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符.
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句.另外还有一种控制语句叫select语句,通常与通道联用,这里不做介绍.
if语法格式如下:
if ... else :
else if:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句,不管下一条case语句是否为true.
下面介绍几种循环语句:
也可以通过标记退出循环:
--THE END--
.程序集 窗口程序集1
.子程序 __启动窗口_创建完毕
.如果 (文件是否存在 (取运行目录 () + "/1.dll") = 真)
标签1.标题 = "文件存在"
.否则
标签1.标题 = "文件不存在"
.如果结束以上参考百度知道
支持==和!=操作就可以做key,实际上只有function、map、slice三个kind不支持作为key,因为只能和nil比较不能和另一个值比较.布尔、整型、浮点、复数、字符串、指针、channel等都可以做key.
struct能不能做key要看每一个字段,如果所有字段都可以做key,那这个struct就可以.有一个字段不能做key,这个struct就不能做key.array也是,元素类型能做key,那这个array就可以.
例如:
type Foo map[struct {
B bool
I int
S string
P *Foo
Ch chan Foo
}]bool
每一个字段都可以做key,Foo就可以做key.再如:
Fn func() Foo
M map[*Foo]int
S []Foo
有一个字段不能做key、Foo就不允许做key,而这三个字段都不能.
字段是递归检查的:
Sub struct {
M map[*Foo]bool
}
Sub的M字段不能做key,Sub就不能做key,Foo也就不能做key.
都说到这里了大家应该明白想把一个数据结构用于map的key,就不能包含function、map和slice.
每一个变量(常量、类型或函数)在程序中都有一定的作用范围.称之为作用域.
Go语言在编译时会检查每一个变量是否使用过,未使用过的变量就会编译错误.
根据变量定义位置的不同,可以分为以下三个类型:
在函数体内被声明的变量称之为局部变量,作用在函数体内,函数的参数和返回值变量都属于局部变量.局部变量不会一直存在,在函数被调用时存在,函数调用结束后变量就会被销毁,即生命周期.
例子:其中a、b均为局部变量,只会在main函数内有效
在函数体外被声明的变量称之为全局变量,作用于所有源文件.不包含这个全局变量的源文件需要使用"import"关键字引入全局变量所在的源文件之后才能使用这个全局变量.
全局变量声明必须以 var 关键字开头,如果想要在外部包中使用全局变量的首字母必须大写.
函数名后面的小括号里定义的变量, 用于接受来自调用函数的参数.用于接收调用该函数时传入的参数.
例如:下面的例子中,第十七行a、b为sum函数定义的形参,用于传入main函数中的AF、BF