zoukankan      html  css  js  c++  java
  • go语言之变量

    1、go的hello world

    package main
    //申明开头,表示代码所属包,申明为main包,可以编译为二进制程序
    import (
       "fmt"
    )
    //导入格式化包,如果引入了包,则必须要用,不然会报错,主要为提高效率,追求极致
    
    func main() {
       fmt.Println("Hello, World!")
    }
    //左边的大括号不能自己单独启一行,右边的大括号不影响
    
    
    //单行注释
    /*
    duo多行zhus注释
     */
    
    
     //go区分大小写
     //go的变量名以下划线和字母开头
    

      

    2、go的变量申明

    package main
    
    import "fmt"
    func main() {
    
    	//申明变量
    	var v1 int
    	var v2 int
    
    	var v3,v4 int
    
    	var (
    		v5 int
    		v6 int
    	)
    
    	//默认都是零值
    	fmt.Println(v1,v2,v3,v4,v5,v6)
    }
    

      

    3、go变量的初始化

    package main
    
    import (
    	"fmt"
    	"reflect"
    )
    func main() {
    	//初始化变量
    
    	//方式1
    	var v1 int = 10
    
    	//方式2
    	var v2 = 20
    
    	//方式3
    	v3 := 30
    
    	fmt.Println(v1,v2,v3)
    	fmt.Println("v3的类型为",reflect.TypeOf(v3))
    	//利用反射查看v3的类型
    }
    

      

    package main
    
    import "fmt"
    func main() {
    	//直接赋值
    	var v1 int
    	v1 = 10
    
    	//申明并赋值,这种方式只能在函数里用
    	v2 := 20
    	v3 := 30
    
    	//多重赋值
    	var v4,v5,v6 int
    	v4,v5,v6 = 40,50,50
    
    	fmt.Println(v1,v2,v3,v4,v5,v6)
    
    }
    

      

    4、go变量的赋值

    package main
    
    import "fmt"
    func main() {
    	//直接赋值
    	var v1 int
    	v1 = 10
    
    	//申明并赋值
    	v2 := 20
    	v3 := 30
    
    	//多重赋值
    	var v4,v5,v6 int
    	v4,v5,v6 = 40,50,50
    
    	fmt.Println(v1,v2,v3,v4,v5,v6)
    
    }
    

      

    5、匿名变量

    package main
    
    import "fmt"
    
    //(int,string),函数的返回值是2个,一个是int一个是字符串
    func test() (int,string) {
    	return 444,"golang"
    }
    
    func main() {
    	//i, s := test()
    	//fmt.Println(i,s)
    
    	//test函数返回两个,在golang中,如果变量没有被使用,则会飘红,这里如果我们只用第二个变量,则可以用一个下划线来做匿名变量
    	//主要用来占位,这样,这个变量就算没有被使用,代码也不会飘红
    	_, s := test()
    	fmt.Println(s)
    }
    

      

    6、常量和枚举

    package main
    
    import "fmt"
    
    //定义常量,必须要给一个确定的值,可确定的值比如 数字,字符串,布尔值
    const filename  = "chy.text"
    
    //这样就会报错,因为a是一个变量,不是一个确定的值
    //var a string
    //a = "abc"
    //const testname  = a
    
    func a()  {
    	const (
    		v1 = "aaa"
    		v2 = "bbb"
    		filename  = "chr.text"
    	)
    
    	//就近原则
    	fmt.Println(filename)
    }
    func b()  {
    
    	//定义普通的枚举类型
    	const (
    		python = "aaa"
    		java = "bbb"
    		perl = "ccc"
    	)
    	fmt.Println(python,java,perl)
    }
    
    func c()  {
    	//定义自增的枚举类型
    	//iota代表自增,从0开始,也叫做常量生成器
    	const (
    		test1 = iota
    		test2
    		test3
    	)
    	fmt.Println(test1,test2,test3)
    }
    
    func d()  {
    	//iota还可以参与计算,下面的例子是位运算
    	const (
    
    		b = 1 << (10*iota)
    		//1 * 2 ^ (10 * iota)
    		
    		kb
    		mk
    		gb
    		//tb
    		//pb
    	)
    	fmt.Println(b,kb,mk,gb)
    }
    
    func main() {
    	//a()
    	//b()
    	//c()
    	d()
    }
    

      

    复习代码

    package main
    
    import "fmt"
    
    
    //定义一个函数,接受2个参数,参数1位int类型的a,参数为string类型的b
    //函数返回两个值,其中第一个值为int类型,第二个值为string类型
    func test1_1(a int,b string) (int,string) {
    	return a + 100,b + "abc"
    }
    
    func test1_2()  {
    	const (
    		a = iota
    		b = iota
    		c = iota
    		d = iota
    	)
    
    	//下面这种写法和上面的写法的结果是一样的
    	//const (
    	//	a = iota
    	//	b
    	//	c
    	//	d
    	//)
    	
    	fmt.Println(a,b,c,d)
    	//0 1 2 3
    }
    
    
    
    func test1_3()  {
    	const (
    		a = iota    //此时iota为0,也就是a=0
    		b = 100     //此时iota为1,但是b=100
    		c = 200     //此时iota为2,但是c=200
    		d           //此时iota为3,但是d=200,和上一行的值保持一致
    		e           //此时iota为4,但是e=200,和上一行的值保持一致
    		f = iota    //此时iota为5,f=5
    	)
    	fmt.Println(a,b,c,d,e,f)
    	//0 100 200 200 200 5
    }
    
    
    func main(){
    	//1、申明一个int类型的变量
    	var test_1_a int
    	var test_1_b int
    	var test_1_c,test_1_d int
    	var (
    		test_1_e int
    		test_1_f int
    	)
    	fmt.Println(test_1_a,test_1_b,test_1_c,test_1_d,test_1_e,test_1_f)
    
    	//如果没有对int类型的变量赋值,那么这个int类型的变量为0
    	//0 0 0 0 0 0
    
    
    	//2、对变量进行赋值的三种方法
    	var test_1_1 int = 1
    
    	var test_1_2 = 2
    	test_1_3 := 3
    
    	fmt.Println(test_1_1,test_1_2,test_1_3)
    	//1 2 3
    
    
    	//此时这里的_就是匿名变量
    	_,res_a := test1_1(122,"dddd")
    	fmt.Println(res_a)
    	//ddddabc
    
    
    
    	c,d :=test1_1(1,"abc")
    	fmt.Println(c,d)
    	
    	//定义一个常量,这个常量不能被赋值为一个变量,因为变量是会变的,常量是不能变的
    	const filename  =  "test1.go"
    
    	test1_2()
    
    	test1_3()
    
    }
    
  • 相关阅读:
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    原型设计工具比较及实践
    软件工程基础大作业感想
    博客园里留下你的成长足迹
    软件工程培训—粗读《构建之法》
  • 原文地址:https://www.cnblogs.com/bainianminguo/p/10835837.html
Copyright © 2011-2022 走看看