Go学习第一天

    今天突发奇想学习了一下go,这个被称“互联网下的C”果然和c一样快速简单(设计思想 一个问题尽量只有一个解决方法)
    下面总结一些知识点:

 

1、go中有包的概念有一个执行入口main包   其中有main方法是执行的入口  如果没有main包 程序是无法执行的 同时建议把包名也就是文件夹的名字和打包的名字package xxx  一样比较好  (另外 源码都是放在src目录下)

2、go 的编译命令 :  就会生成同名的exe文件  如果要指定文件名和路径 加上-o xxx.exe

go build xxx.go  ->.exe

 go的代码格式化命令: 


gofmt -w xxx.go   排版文件对齐格式化

 

3、变量声明:

var num int    //   全局变量不可 num :=10
    num = 10

var num=10
//多变量声明
    var s1,s2,s3 string  //这里不能同时赋值 var s1,s2,s3 string="a" 错误
//正确
var n1,n2,n3 = "a",1,false
 

//全局变量多个变量声明方式
var(
    e1 = 200
    e2 = "200"
    e4 =false


 

 4、关于数据类型小结:


Int
[
    int:取多少和系统有关
    rune:== int32
    int8:-128-128 (byte)
    uint8 0-255

]

5、go字符串由字节组成
address :="泮\n斌"  //字符串不可便 会转义
    address2 := `泮\n斌` //反引号 不转意
 

 6、

//转换


	//xxx->string
	ssAge := fmt.Sprintf("%d",15)

	num5 := 123
	str := strconv.Itoa(num5) //整数转字符串
	fmt.Println(str)
	fmt.Println(ssAge)

	iiAge := strconv.FormatInt(101,2) //base表示转化为2进制
	fmt.Printf("%T %s\n",iiAge,iiAge)

	f :=12.43
	sf := strconv.FormatFloat(f,'f',4,64) //转成什么格式 保留几位
	fmt.Println(sf)

	//string ->xxx

	sb :="10101"
	var bb int64
	bb, _ = strconv.ParseInt(sb,2,64) //base代表把要转换的看成2进制
	fmt.Println(bb)

7、关于包的一些概念:

包中  如果首字母大写 可以被外部使用 小写则不可以

包引用:    h "hello"  //取别名  需要使用别名 否则报错

全局变量定义 -->  init函数----> main  如何引入其他包 则先执行其他包的变量定义->init
//会在main之前
func init()  {
    fmt.Println("Init")

}

 

 

8、函数的一些概念:


defer fmt.Println("OK1") //最后执行
defer fmt.Println("OK2") //最后执行 定义的倒序执行

numbers := []int{1,5,7,9,13}
	for i,j :=range numbers{
		fmt.Println(i," ",j)
	}


//将函数作为参数传递
func f2()  string {
	return "F2"
}
func f3(f2 func() string)  {
	fmt.Println(f2())
}



func f4(a int ,b int)  {
	fmt.Println(a+b)
}
func f44(f func(int,int), a int,b int)  {
	f(a,b)
	return
}

//func(int,int)可以设置别名 
type f4typename func(int,int)

func f44(f f4typename, a int,b int)  {
	f(a,b)
	return
}


//支持可变参数 下面表示1到多个参数
func f5(one int,args...int)  {
	sum :=one
	for i :=0; i<len(args); i++{
		sum +=args[i]
	}
	fmt.Println(sum)
}
f5(1,2,3,4,4,6)

不支持函数重载


//匿名函数
	b := func(a int,b int) int{
		return a+b
	}(1,2)

	fmt.Println(b) //3
	
	ff :=func(a int,b int) int{
		return a+b
	}
	fmt.Println(ff(3,4))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值