zoukankan      html  css  js  c++  java
  • Go变量

    1. 什么是变量

    变量就是用描述性的名字指代内存的地址,而不再使用数字。

    内存上的内一个字节,有一个编号,这个编号就是地址,类似于房间的门牌号。
    但是记住很多数字对人类来说是非常困难的,人类更擅长记一个有表意性的名字。

    变量可以理解为一个“有名称的容器”,用于装各种不同类型的数据。
    编程人员通过对变量的访问和修改,操作内存中的数据。

    package main
    
    import "fmt"
    
    func main() {
    	/*
    	变量:variable
    	概念:一小块内存,用于存储数据,在程序运行过程中数值可以改变
            变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。
            变量可以通过变量名访问。
            Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
    
    	使用:
    		step1:变量的声明,也叫定义
    			第一种:var 变量名 数据类型
    					变量名 = 赋值
    					var 变量名 数据类型 = 赋值
    
    			第二种:类型推断,省略数据类型
    					var 变量名 = 赋值
    
    			第三种:简短声明,省略var
    					变量名 := 赋值
    
    		step2:变量的访问,赋值和取值
    				直接根据变量名访问
    
    
    	go的特性:
    		静态语言:强类型语言
    			go,java,c++,c#。。
    
    		动态语言:弱类型语言
    			JavaScript,php,python,ruby。。
    	 */
    	//第一种:定义变量,然后进行赋值
    	var num1 int
    	num1 = 30
    	fmt.Printf("num1的数值是:%d
    ",num1)
    	//写在一行
    	var num2 int = 15
    	fmt.Printf("num2的数值是:%d
    ",num2)
    
    	//第二种:类型推断
    	var name = "王二狗"
    	fmt.Printf("类型是:%T,数值是:%s
    ",name,name)
    
    	//第三种,简短定义,也叫简短声明
    	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 = 100,200
    	fmt.Println(m,n)
    
    	var n1,f1,s1 = 100,3.14,"Go"
    	fmt.Println(n1,f1,s1)
    
    	var (
    		studentName = "李小花"
    		age = 18
    		sex = "女"
    	)
    	fmt.Printf("学生姓名:%s,年龄:%d,性别:%s
    ",studentName,age,sex)
    }
        
    package main
    
    import "fmt"
    
    var a = 1000 //全局变量
    var b int = 2000
    //c := 3000 //语法错误
    func main() {
    	/*
    	注意点:
    	1.变量必须先定义才能使用
    	2.变量的类型和赋值必须一致
    	3.同一个作用域内,变量名不能冲突
    	4.简短定义方式,左边的变量至少有一个是新的
    	5.简短定义方式,不能定义全局变量
    	6.变量的零值,就是默认值
    		整型:默认值是0
    		浮点类型:默认是0
    		字符串:默认值""
    	 */
    	var num int
    	num = 100
    	fmt.Printf("num的数值是:%d,地址是:%p
    ",num, &num)
    
    	num = 200
    	fmt.Printf("num的数值是:%d,地址是:%p
    ",num, &num)
    
    	// fmt.Println(num2) //undefined: num2
    
    	var name string
    	//name = 100
    	//fmt.Println(name) //cannot use 100 (type int) as type string in assignment
    	name = "王二狗"
    	fmt.Println(name)
    
    	//var name string  = "李小花"
    	//fmt.Println(name)
    
    	num ,name ,sex := 1000,"李小花" , "男" //no new variables on left side of :=
    	fmt.Println(num,name,sex)
    
    	fmt.Println(a)
    
    	fmt.Println("----------------------")
    	var m int //整数,默认值是0
    	fmt.Println(m)
    	var n float64 //0.0-->0
    	fmt.Println(n)
    	var s string //""
    	fmt.Println(s)
    	var s2 []int //切片[]
    	fmt.Println(s2) //[]
    	fmt.Println(s2 == nil) //true
    
    	//var sum = 100 //sum declared and not used
    
    }
    

      

  • 相关阅读:
    codeforce 896A
    CQH分治与整体二分
    [CQOI2011]动态逆序对
    codeforce Hello 2018 913F sol
    A*算法[k短路([SDOI2010]魔法猪学院)]
    bzoj3524 [POI2014]Couriers
    整体二分
    bzoj5016 [SNOI2017]一个简单的询问
    CF176E Archaeology
    bzoj4551 [TJOI2016&HEOI2016]树
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12174319.html
Copyright © 2011-2022 走看看