1.基本概念和语法
golang中,如果一个名字的首字母大写,代表词名字将被导出。
golang程序由包(package)组成,程序从main包开始运行,多个源文件可以属于同一个包,但是一个目录中只放置一个包。通常而言,目录名与包名一致。package main 定义一个包main。 导入代码包形式如下:
import "fmt
import"math/rand" 或写为如下形式
import(
"fmt"
"math/rand"
)
函数:定义变量时,变量名在类型之前,这与很多语言不一致。且x int,y int可以表示为x,y int。 定义一个函数形式如下:
func add(x int,y int)int{ return x+y
}
函数可以返回多个值:
package main
import "fmt"
func swap(x,y string)(string,string){
return y,x
}
func main(){
a,b:= swap("hello","world")
fmt.Println(a,b)
}
注:返回值可以指定变量名,并且像变量一样使用。
func (p myType) funcName (a,b int, c string) (r,s int){ return
}
func->关键字
funcName->方法名
a,b int,c string->传入参数
r,s int->返回值
{}->函数体
函数的定义可以使用var:var m int = 10
或者,var i,j,k = 1,2,3
函数内变量赋值使用:=操作符
函数也是一个类型,函数类型是go语言中一个重要的类型。
var recorder func(name string,age int,seniority int)(done bool)
//后面所有符合这个函数类型的实现都可以赋给变量recorder,如下
recorder = func(name string,age int,seniority int)(done bool){
//相应语句
return
}
上述中,我们将一个函数字面上赋给了变量recorder,我们可以在一个函数类型的变量上直接应用调用表达式来调用它,如下:
done := recorder("Harry",32,10)
type Encipher func(planintext string)[]byte //type专门用于声明自定义类型,此处声明的
Encipher实际上就是函数类型func(planintext string)[]byte的一个别名类型。
数据类型:数据类型的转换表达式为T(v),含义将v转换为类型T。数据类型包含如下形式:
1.bool 2.string 3.int int8 int16 int32 int64
4.uint uint8 unint16 uint32 uint64
5.uintptr 6.byte(等价于uint8)
7.rune(等价于int32,用于表示一个unicode code point)
8.float32,float64 9.complex64,complex128
注:使用constant来定义常量,constant Pi= 3.14
控制语句:
for语句 golang中使用(且只使用)for来进行循序(没有while语句)
package main func main(){
sum := 0
for i := 0;i < 10;i++{
sum += i
}
//下述写法等价于C/C++等语言中的while语句
for sum < 1000{
sum + =sum
}
}
注:for循环语句不需要()且{}是必须要使用的,if、switch语法处理与此一样。若使用无限循环,则可使用:
for{
}
2. if语句,if语句可以在执行条件判断前带一个语句(这常被叫做if带上一个短语句),词语句中变量的生命周期在if语句结束后结束,如下。
package main import(
"fmt"
"math/rand"
)
func main(){
if n := rand.Intn(6);n
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com