1、go的hello world

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

  

2、go的变量申明

  1. package main
  2.  
  3. import "fmt"
  4. func main() {
  5.  
  6. //申明变量
  7. var v1 int
  8. var v2 int
  9.  
  10. var v3,v4 int
  11.  
  12. var (
  13. v5 int
  14. v6 int
  15. )
  16.  
  17. //默认都是零值
  18. fmt.Println(v1,v2,v3,v4,v5,v6)
  19. }

  

3、go变量的初始化

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "reflect"
  6. )
  7. func main() {
  8. //初始化变量
  9.  
  10. //方式1
  11. var v1 int = 10
  12.  
  13. //方式2
  14. var v2 = 20
  15.  
  16. //方式3
  17. v3 := 30
  18.  
  19. fmt.Println(v1,v2,v3)
  20. fmt.Println("v3的类型为",reflect.TypeOf(v3))
  21. //利用反射查看v3的类型
  22. }

  

  1. package main
  2.  
  3. import "fmt"
  4. func main() {
  5. //直接赋值
  6. var v1 int
  7. v1 = 10
  8.  
  9. //申明并赋值,这种方式只能在函数里用
  10. v2 := 20
  11. v3 := 30
  12.  
  13. //多重赋值
  14. var v4,v5,v6 int
  15. v4,v5,v6 = 40,50,50
  16.  
  17. fmt.Println(v1,v2,v3,v4,v5,v6)
  18.  
  19. }

  

4、go变量的赋值

  1. package main
  2.  
  3. import "fmt"
  4. func main() {
  5. //直接赋值
  6. var v1 int
  7. v1 = 10
  8.  
  9. //申明并赋值
  10. v2 := 20
  11. v3 := 30
  12.  
  13. //多重赋值
  14. var v4,v5,v6 int
  15. v4,v5,v6 = 40,50,50
  16.  
  17. fmt.Println(v1,v2,v3,v4,v5,v6)
  18.  
  19. }

  

5、匿名变量

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

  

6、常量和枚举

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. //定义常量,必须要给一个确定的值,可确定的值比如 数字,字符串,布尔值
  6. const filename = "chy.text"
  7.  
  8. //这样就会报错,因为a是一个变量,不是一个确定的值
  9. //var a string
  10. //a = "abc"
  11. //const testname = a
  12.  
  13. func a() {
  14. const (
  15. v1 = "aaa"
  16. v2 = "bbb"
  17. filename = "chr.text"
  18. )
  19.  
  20. //就近原则
  21. fmt.Println(filename)
  22. }
  23. func b() {
  24.  
  25. //定义普通的枚举类型
  26. const (
  27. python = "aaa"
  28. java = "bbb"
  29. perl = "ccc"
  30. )
  31. fmt.Println(python,java,perl)
  32. }
  33.  
  34. func c() {
  35. //定义自增的枚举类型
  36. //iota代表自增,从0开始,也叫做常量生成器
  37. const (
  38. test1 = iota
  39. test2
  40. test3
  41. )
  42. fmt.Println(test1,test2,test3)
  43. }
  44.  
  45. func d() {
  46. //iota还可以参与计算,下面的例子是位运算
  47. const (
  48.  
  49. b = 1 << (10*iota)
  50. //1 * 2 ^ (10 * iota)
  51.  
  52. kb
  53. mk
  54. gb
  55. //tb
  56. //pb
  57. )
  58. fmt.Println(b,kb,mk,gb)
  59. }
  60.  
  61. func main() {
  62. //a()
  63. //b()
  64. //c()
  65. d()
  66. }

  

复习代码

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. //定义一个函数,接受2个参数,参数1位int类型的a,参数为string类型的b
  6. //函数返回两个值,其中第一个值为int类型,第二个值为string类型
  7. func test1_1(a int,b string) (int,string) {
  8. return a + 100,b + "abc"
  9. }
  10.  
  11. func test1_2() {
  12. const (
  13. a = iota
  14. b = iota
  15. c = iota
  16. d = iota
  17. )
  18.  
  19. //下面这种写法和上面的写法的结果是一样的
  20. //const (
  21. // a = iota
  22. // b
  23. // c
  24. // d
  25. //)
  26.  
  27. fmt.Println(a,b,c,d)
  28. //0 1 2 3
  29. }
  30.  
  31. func test1_3() {
  32. const (
  33. a = iota //此时iota为0,也就是a=0
  34. b = 100 //此时iota为1,但是b=100
  35. c = 200 //此时iota为2,但是c=200
  36. d //此时iota为3,但是d=200,和上一行的值保持一致
  37. e //此时iota为4,但是e=200,和上一行的值保持一致
  38. f = iota //此时iota为5,f=5
  39. )
  40. fmt.Println(a,b,c,d,e,f)
  41. //0 100 200 200 200 5
  42. }
  43.  
  44. func main(){
  45. //1、申明一个int类型的变量
  46. var test_1_a int
  47. var test_1_b int
  48. var test_1_c,test_1_d int
  49. var (
  50. test_1_e int
  51. test_1_f int
  52. )
  53. fmt.Println(test_1_a,test_1_b,test_1_c,test_1_d,test_1_e,test_1_f)
  54.  
  55. //如果没有对int类型的变量赋值,那么这个int类型的变量为0
  56. //0 0 0 0 0 0
  57.  
  58. //2、对变量进行赋值的三种方法
  59. var test_1_1 int = 1
  60.  
  61. var test_1_2 = 2
  62. test_1_3 := 3
  63.  
  64. fmt.Println(test_1_1,test_1_2,test_1_3)
  65. //1 2 3
  66.  
  67. //此时这里的_就是匿名变量
  68. _,res_a := test1_1(122,"dddd")
  69. fmt.Println(res_a)
  70. //ddddabc
  71.  
  72. c,d :=test1_1(1,"abc")
  73. fmt.Println(c,d)
  74.  
  75. //定义一个常量,这个常量不能被赋值为一个变量,因为变量是会变的,常量是不能变的
  76. const filename = "test1.go"
  77.  
  78. test1_2()
  79.  
  80. test1_3()
  81.  
  82. }

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. [Python]实现字符串倒序的三种方法

    a=" 1: print(a[::-1]) 2: b=list(a) b.reverse() print(''.join(b)) 3: c=len(a)-1 str_1=[] while(c ...

  2. .NET Core依赖注入集成Dynamic Proxy

    在<Castle DynamicProxy基本用法>中介绍了如何将DP与Autofac集成使用,而 .NET Core有自己的依赖注入容器,在不依赖第三方容器的基础上,如何实现动态代理就成 ...

  3. Nginx优化之一

    一.Nginx安全优化 1.1:隐藏nginx版本信息 官方配置参数说明:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_ ...

  4. python网络编程socket编程(TCP、UDP客户端服务器)

    摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 >>> from socket import * >>> tcpSock = soc ...

  5. PWM是如何调节直流电机转速的?电机正反转的原理又是怎样的?

    电机是重要的执行机构,可以将电转转化为机械能,从而驱动北控设备的转动或者移动,在我们的生活中应用非常广泛.例如,应用在电动工具.电动平衡车.电动园林工具.儿童玩具中.直流电机的实物图如下图所示. 1- ...

  6. inux 网络监控分析

    一.sar -n:查看网卡流量 -n 参数,他有6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL .DEV显示网络接口信息,EDEV显示关于网络错误的统计数据, ...

  7. asp.net core 系列 9 三种运行环境和IIS发布

    一.在asp.net core中使用多个环境 ASP.NET Core 配置是基于运行时环境, 使用环境变量.ASP.NET Core 在应用启动时读取环境变量ASPNETCORE_ENVIRONME ...

  8. DDD 实战记录——实现「借鉴学习计划」

    「借鉴学习计划」的核心是:复制一份别人的学习计划到自己的计划中,并同步推送学习任务给自己,并且每个操作都要发送通知给对方. 它们的类图如下: 它们的关系是一对多: // Schedule entity ...

  9. Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)

    0. 前言 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动: 此安装是在 Intel 集显下的图形化界面,即用集显做 display, ...

  10. Graylog 笔记

    安装 基本上有3种方式,1 yum安装2 rpm安装3 docker安装 yum安装 yum安装,参照官方文档是最好的:http://docs.graylog.org/en/3.0/pages/ins ...