Go学习笔记(一)

2022.2.21

变量类型
数字(int、uint /8 6 32 64、float 32 64、complex实虚数 64 128),布尔,字符串,派生类型(Pointer,数组,结构化,Channel,接口,Map)

基础函数

fmt

	fmt.Println() //可用逗号拼接,输出会多加一个空格
	fmt.Print()
	var url = fmt.Sprintf("%d %s",...参数)//格式化字符串最后还需要输出才能打印
/*
	%v 本来值
	%q 双引号输出
	%T 输出数据类型
*/

变量声明

	var a,b int = 1,2 //类型int可以省略
	a := 1 //适用于未声明过的变量

常量声明

	const PI = 3.14 //隐式
	const PI float32 = 3.14 //显示
	const a, b, c = 1, false, "str" //多重赋值
	const (
	    i = iota //特殊常量下一位默认加 1 
	    j = 1
	    h
	    //输出结果0 1 1
	)

//常量必须使用内置函数
	len(c)
	unsafe.Sizeof(c) //两个指针,一个指向起始地址,一个指向长度,8+8=16个字节
	cap(c) //数组切片容量,学习到对应部分再了解

条件语句

//第一种
	a:=30
	swtich a{
		case 30:... //自带break
		case 40:...
		case 50,60,70:...
		default:...
	} 
//第二种
	grade :="A"
	switch{
		case grade == "A":...
		fallthrough //强行执行下一条,不判断下一个条件是否成立
		case grade =="B",grade =="C":...
	}

select //涉及通信操作,学习之后再了解

循环语句
没有while,只有for

//像java的for写法,但是没有括号
	sum:=0
	for i:0;i<=10;i++{
		sum+=i;
	}
//像while的写法
	for sum<=20{
		sum+=1
	}

//range 对数组字符串循环
    str := "abc"
    for i,x:=range str{ //range相当于索引
        fmt.Println(i,fmt.Sprintf("%c",x))
    }
//break 标签
    Loop:
        for i:=0;i<=10;i++{
            fmt.Println(i)
            if(i==5){
                break Loop //标签写在循环之前表示不再执行该循环
            }
        }
//continue标签
    re:
        for i := 1; i <= 3; i++ {
            fmt.Printf("i: %d\n", i)
                for i2 := 11; i2 <= 13; i2++ {
                    fmt.Printf("i2: %d\n", i2)
                    continue re //从最外层循环重新开始执行
                }
        }
//goto 不推荐使用

函数定义
参数传递类似于C,存在值传递和引用传递

	func 函数名(参数列表) [返回值类型]{
	}
	func show(a string,b int) (int,string){
		return b,a
	}
	func main(){
		b,a:=show("aaa",3)
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值