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() }

go语言之变量的更多相关文章

  1. iOS开发环境C语言基础 变量 、 数据类型和变量赋值 、 其他 、 运算符

    1 变量使用常用错误汇总 1.1 问题 在我们使用变量的过程中,会遇到一些问题,在此将这些问题进行汇总,在今后使用的过程中,不出错.即使出现错误也可以很快地找到问题所在. 1.2 方案 变量在使用的过 ...

  2. C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期

    全局变量 作用域:全局作用域(全局变量只需在一个源文件中定义,就可以作用于所有的源文件.) 生命周期:程序运行期一直存在 引用方法:其他文件中要使用必须用extern 关键字声明要引用的全局变量. 内 ...

  3. OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章)

    OpenGL ES着色器语言之变量和数据类型(二)(官方文档第四章) 4.5精度和精度修饰符 4.5.1范围和精度 用于存储和展示浮点数.整数变量的范围和精度依赖于数值的源(varying,unifo ...

  4. OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)和varying,uniform,attribute修饰范围

    OpenGL ES着色器语言之变量和数据类型(一)(官方文档第四章)   所有变量和函数在使用前必须声明.变量和函数名是标识符. 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符. ...

  5. R语言:变量名称和字符串的转换

    R语言:变量名称和字符串的转换 2014-06-23 14:45:27         在R语言中,经常会遇到变量名称和字符串相互转换的问题.比如说,进行1000次循环运算,并将运算结果存储在1000 ...

  6. C语言中变量、全局变量与变量的作用域

    什么是变量: 变量常量都是表征数据的一种形式:常量用来表示数据的值: 变量不仅可以用来表示数据的值:还可以用来存放数据:因为变量对应着一定的内存单元: 变量和常量必须先定义后使用. 变量名和常量名都是 ...

  7. C语言进阶——变量属性05

    C语言变量属性: C语言的变量可以有自己的属性 在定义变量的时候加上“属性”关键字 “属性”关键字指明变量的特有意义 语法:property type value_name; auto关键字: aut ...

  8. C语言中变量和函数的作用域和链接属性

    C语言中变量和函数的作用域和链接属性 作用域 代码块作用域: 代码块指的是使用"{}"包围起来的部分. 在代码块中定义的变量,代码块之外是不能访问的. 代码块嵌套之后的变量作用域, ...

  9. Python - Django - 模板语言之变量

    前言: 在 Django 模板语言中变量用 {{ }},逻辑用 {% %} 在 urls.py 中添加对应关系 from django.conf.urls import url from django ...

  10. Go语言的变量和常量(三)

    我想吐槽下网上的很多所谓的“零基础教程”,因为那根本不算零基础.就拿语言教程来说,一上来就说怎么定义变量的怎么算零基础呢?零基础应该是先告诉你啥叫变量. 所以我从不起零基础的标题.我这也不是教程,只是 ...

随机推荐

  1. item()方法遍历字典

    Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了几乎随处都可见for...in.下面说的这种遍历方式是item()方法. item() item()方法 ...

  2. c++之指针

    一.指针的基本概念 指针的作用:可以通过指针间接访问内存. 内存编号是从0开始记录的,一般用十六进制数字表示. 可以利用指针变量保存地址. 二.指针变量的定义和使用 指针变量定义语法:数据类型 *变量 ...

  3. 迈布-----UE4AI自动巡逻与攻击

    这个行为树给我恶心的都想吐,我用的是4.24,跟着官网做达不到那个效果,跟着视频做也达不到那个效果,跟我弄的非常不耐烦,最后终于在今天整出来了.有的地方用了一下我自己的逻辑.//诸位依靠教程的,一定得 ...

  4. Python:数字类型和字符串类型的内置方法

    一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...

  5. 【高可用架构】开发机上部署Deploy项目(一)

    准备 部署项目的细节可以看这个,传送门Centos 7部署Laravel项目 主机IP:192.168.10.17 [高可用架构]系列链接:待部署的架构介绍 演示 部署Deploy composer ...

  6. SpringCloud -创建统一的依赖管理

    场景 Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性 Token,全居琐,Leader 选举,分布式 Session,集群状态)中快速构 ...

  7. linux 动态链接库查找方法;查找动态链接库位置; LIBRARY_PATH 和 LD_LIBRARY_PATH 的区别;LD_LIBRARY_PATH and LD_RUN_PATH的区别;

    今天配置之前项目的时候,发现有些动态链接库变了,想看看现在应用在使用哪些动态链接库的时候,进一步查了点资料: 下面针对linux动态链接库查找方法和动态链接库位置配置的过程进行记录: LIBRARY_ ...

  8. Webpack 一些概念

    目录 引子 Dependency Graph Runtime Manifest Module.Bundle.Chunk Bundle Splitting Code Splitting Tree Sha ...

  9. C++之结构体特点

    C++的结构体和C语言的结构体有什么不同 C++的结构体其实就是类的一种,只不过类成员默认访问权限是private,结构体默认访问权限是public. C语言的结构体是不能有函数的,而C++可以有. ...

  10. SpringBoot集成swagger2.0

    最近项目里要用到SpringBoot + swagger,查了其他小伙伴们的资料,或多或少有点问题,在此我再梳理一遍. 1.maven依赖 <parent> <groupId> ...