zoukankan      html  css  js  c++  java
  • go基础——变量与常量

    变量

    package main
    
    import "fmt"
    
    /*
    	变量:variable
    	概念:一小块内存,用于存储数据,在程序运行过程中数值可以改变
    	特性:静态语言,强类型语言
    */
    func main() {
    	//使用:
    	//一、变量的声明,也叫定义
    
    	//第一种:定义变量,然后进行赋值
    	var num1 int //var 变量名 数据类型
    	num1 = 30    //变量名 = 赋值
    	//写在一行
    	var num2 int = 15 //var 变量名 数据类型 = 赋值
    	fmt.Printf("num1的数值是:%d
    ", num1)
    	fmt.Printf("num2的数值是:%d
    ", num2)
    
    	//第二种:类型推断,省略数据类型
    	var name = "小李" //var 变量名 = 赋值
    	fmt.Printf("类型是:%T,数值是:%s
    ", name, name)
    
    	//第三种:简短定义,也叫简短声明,省略var
    	sum := 100 //变量名 := 赋值
    	fmt.Println(sum)
    
    	//多个变量同时定义
    	var a, b, c int
    	a = 1
    	b = 2
    	c = 3
    	fmt.Println(a, b, c)
    
    	var m, n int = 4, 5
    	fmt.Println(m, n)
    
    	var (
    		sname = "小张"
    		age   = 18
    		sex   = "男"
    	)
    	fmt.Printf("姓名:%s,年龄:%d,性别:%s
    ", sname, age, sex)
    
    	//二、变量的访问,赋值和取值
    	/*
    		注意点:
    		1.变量必须先定义才能使用
    		2.变量的类型和赋值必须一致
    		3.同一个作用域内,变量名不能冲突
    		4.简短定义的方式,左边的变量至少有一个是新的
    		5.简短定义不能定义全局变量
    	*/
    	var num int
    	num = 100
    	fmt.Printf("num的数值是:%d,地址是:%p
    ", num, &num)
    	num = 200
    	fmt.Printf("num的数值是:%d,地址是:%p
    ", num, &num)
    
    	//6.变量的零值,也叫默认值。
    	var s1 int     //0
    	var s2 float64 //0.0,简写成0
    	var s3 string  //""
    	var s4 []int   //nil
    	fmt.Println(s1, s2, s3)
    	fmt.Println(s4 == nil)
    
    	//7.变量定义了就要使用
    }
    

    num1的数值是:30
    num2的数值是:15
    类型是:string,数值是:小李
    100
    1 2 3
    4 5
    姓名:小张,年龄:18,性别:男
    num的数值是:100,地址是:0xc0000ac098
    num的数值是:200,地址是:0xc0000ac098
    0 0
    true

    常量

    package main
    
    import "fmt"
    
    /*
    	常量:
    	1.概念:同变量类似,程序执行过程种数值不能改变
    	2.语法:
    		显式类型定义
    		隐式类型定义
    	3.常数:
    		固定的数值:100,"abc"
    */
    func main() {
    
    	//使用:
    	//1.定义常量
    	const PATH string = "baidu.com"
    	const PI = 3.14
    
    	//2.定义一组常量
    	const C1, C2, C3 = 100, 3.14, "hello"
    	const (
    		MALE   = 0
    		FEMALE = 1
    		UNKNOW = 3
    	)
    
    	//3.一组常量中,如果某个常量没有初始值,默认和上一行一致
    	const (
    		a int = 100
    		b
    	)
    	fmt.Printf("%T,%d
    ", a, a)
    	fmt.Printf("%T,%d
    ", b, b)
    
    	//4.枚举类型:使用常量组作为枚举类型,一组相关数值的数据
    	const (
    		SPRING = 0
    		SUMMER = 1
    		AUTUMN = 2
    		WINTER = 3
    	)
    
    	//注意事项:
    	//常量中的数据类型只可以是布尔型、数字型(整数、浮点、复数)和字符串型。
    	//不曾使用的常量,编译不会报错。
    	//赋值与常量类型必须一致。
    }
    

    int,100
    int,100

    iota

    package main
    
    import "fmt"
    
    /*
    	iota:特殊常量,可以认为是一个可以被编译器修改的常量。
    		每当定义一个const,iota的初始值为0;
    		每当定义一个常量,就会自动累加1;
    		直到下一个const出现,清零
    */
    func main() {
    
    	const (
    		a = iota //0
    		b = iota //1
    		c = iota //2
    	)
    	const (
    		d = iota //0
    		e        //1
    	)
    	fmt.Println(a, b, c)
    	fmt.Println(d, e)
    
    	const (
    		A = iota   //0
    		B = "haha" //iota=1
    		C          //C="haha",iota=2
    		D = iota   //3
    		E          //4
    	)
    	fmt.Println(A, B, C, D, E)
    }
    

    0 1 2
    0 1
    0 haha haha 3 4

  • 相关阅读:
    linux进程管理
    使用PL/SQL Developer 学习pl/sql
    Linux入门到放弃之一《在VMware虚拟机中安装Linux系统(RedHat)》
    解决Java连接Oracle 12c存在的问题
    Linux安装64位Mysql5.7.22
    在centos下启动nginx出现Failed to start nginx.service:unit not found
    windows10下IntelliJ IDEA使用logback设置日志输出目录
    Windows下mysql5.6升级到5.7的方法
    Spring+Hibernate+Struts2整合之实现登录功能
    Hibernate关系映射之many-to-many(多对多)
  • 原文地址:https://www.cnblogs.com/maxgongzuo/p/15250750.html
Copyright © 2011-2022 走看看