今天早上比昨天还早起了一点点,然后学习了go的变量申明以及函数的写法等方面,感觉还是有所收获的,我感觉写法有点怪,可能是跟C++的声明有点不一样。坚持就能成功!

一、变量声明:

声明通用格式为:

var variantname type :variantname指变量名 type:值变量类型

//声明变量
package mainimport "fmt"//默认初始化 int类型为0 bool false
var c,python,java boolfunc main()  {
var i int
fmt.Println(i,c,python,java)
}

二、变量初始化:

当变量有确定的参数时,初始化可以不加类型标识符,系统将自动识别:(这点有点像Python) 

//变量初始化
package mainimport ("fmt"
)var i,j int = 1,3func main(){//变量初始化后,可以省略类型,系统将自动识别。var c,python = false,"ddd"fmt.Println(c,python,i,j)
}

声明变量时,如果未赋值,系统将自动赋值为0值。

如果是string类型的话,则赋值为""空值

//声明变量时,未赋值的话将会自动赋值为零值
package mainimport "fmt"func main()  {var  i intvar f float32var j boolvar s stringfmt.Printf("%v,%v,%v,%v",i,j,s,f)
}

如果有确定赋值的话,变量的声明还可以改为: var dd = "dd" 等价于 dd:= "dd"

package mainimport ("fmt"
)
//自动识别类型,取决于它的精度
func main(){v:="ddd"fmt.Printf("This type is %T",v)
}

四、数据的类型转换:

一个重点是 必须得是强制类型转换形式,如下:

//类型转换
package mainimport ("fmt""math"
)
//重点:中括号不能写在下面
func main() {var x,y int = 3,4var f float64= math.Sqrt(float64(x*x + y*y))var z uint = uint(f)fmt.Println(x, y, z)
}
// :在类型明确的情况下,作用类似于var
package mainimport "fmt"func main()  {
var i,j int=1,3
k:=3
c,python,java:=true,false,"day"
fmt.Println(i,j,k,c,python,java)
}

当需要导入多个包时,可以使用import("""")这种形式 示例代码如下:

//go learn
package main//import 导入多个包 用括号来包含多个包
import ("fmt""math""math/rand"
)func main()  {//rand.Intn总会返回相同的数字,因为运行环境固定//Println 和Printf区别:Println可以输出字符串和变量, Printf只能输出字符串
fmt.Println("My Favorite Number is",rand.Intn(10))
fmt.Printf("Now you have %g problems.\n",math.Sqrt(7))
}

Go语言函数的通用格式:

func 函数名(参数名 参数类型)(返回的数据类型){

方法

}

package mainimport "fmt"const (Big = 1 << 100Small = Big >> 99
)func needInt(x int)int{return x*10 + 1
}
func needFloat(x float64)float64{return  x * 0.1
}func main(){fmt.Println(needInt(Small))fmt.Println(needFloat(Small))fmt.Println(needFloat(Big))
}

可以使用变量作为返回值,如下:

//命名返回值
package mainimport "fmt"func split(sum int)(x,y int){x = sum * 4 /9y = sum - xreturn
}func main()  {fmt.Println(split(36))
}
/*多值返回*/
package mainimport "fmt"/*多值返回情况,返回值类型用括号包*/
func swap(x,y string)(string,string){return y,x
}func main()  {//a,b多参数赋值写法如下:a,b:= swap("today","tomorrow")fmt.Println(swap("ss","mm"))fmt.Println(a,b)
}
package mainimport "fmt"//go 函数: func 函数名(变量 变量类型,变量 变量类型)返回类型{函数体}
func add(x int,y int)int{return x + y
}//go函数,要是函数参数类型一样时,保留最后一个类型参数即可。
func addsave(x ,y int)int{return x + y
}func main(){fmt.Println("结果为:",add(42,12))fmt.Println("测试数据 56+12=",addsave(56,12))
}
package mainimport "fmt"//常量命名首字母通常大写
const Pi  = 3.14func main(){const World = "世界"fmt.Println("Hello,%v",World)fmt.Println("Happy",Pi,"Day")const Truth  = truefmt.Println("Go rules",Truth)
}

重点:::Go语言的基本数据类型:
bool string int int8,int 16,int32,int64 uint uint8, uint16 uint32 uint64
uintptr byte:uint8  rune:int32
float32 float64
complex64 complex128 

变量声明也可以用 var()的形式,更加方便简洁直观

//go语言的基本数据类型
//bool string int int8,int 16,int32,int64 uint uint8, uint16 uint32 uint64
//uintptr byte:uint8  rune:int32
//float32 float64
//complex64 complex128
package mainimport ("fmt""math/cmplx"
)//声明多个变量的另一种方式
var(ToBe bool = falseMaxInt uint64 = 1<<64 -1z complex128 = cmplx.Sqrt(-5+12i) //复数类型
)//%T:输出的是它的类型 %v:输出的是实际的值
func main(){fmt.Printf("Type: %T Value:%v\n",ToBe,ToBe)fmt.Printf("Type: %T Value:%v\n",MaxInt,MaxInt)fmt.Printf("Type: %T Value:%v\n",z,z)
}

希望能够学有所成,兴趣最重要!

Go语言学习Day02相关推荐

  1. C++语言学习(十二)——C++语言常见函数调用约定

    C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...

  2. 微软提出CLIPBERT:通过稀疏采样的视频语言学习

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家带来经典或 ...

  3. c语言错误的等式,C语言学习中几个常见典型错误分析.docx

    C语言学习中几个常见典型错误分析 打开文本图片集 摘要:C语言是一门优秀,应用广泛的结构化程序设计语言,是中职计算机.机电和电子技术等专业一门理论和实践相结合的课程,教学实践中,学生常觉得c语言难学, ...

  4. 二级C语言学习宝典下载,二级C语言学习宝典

    二级C语言学习宝典app是一款专注于全国二级计算机等级C语言学习所开发的应用软件,它能够给你带来全新的功能板块,让你轻松掌握超多优质的考试训练,享受到手机端做题刷题的畅快体验,让你轻松备考,而且在该软 ...

  5. php7做了哪些优化,PHP语言学习之PHP7做了哪些优化

    本文主要向大家介绍了PHP语言学习之PHP7做了哪些优化,通过具体的内容向大家展示,希望对大家学习php语言有所帮助. 一  zval使用栈内存 在Zend引擎和扩展中,经常要创建一个PHP的变量,底 ...

  6. C语言学习趣事_之_大数运算_加法

    C语言学习趣事_大数运算_之加法 1.引子    在C语言中,因为预定义的自然数类型的大小是有上下限度的,这就决定了在进行数的运算的时候,必然受到限制,同时因为C语言是最接近汇编的一种程序设计语言,并 ...

  7. 攻破c语言笔试与机试难点,如何攻破C语言学习、笔试与机试的难点.doc

    如何攻破C语言学习.笔试与机试的难点 第一节??C语言编程中的几个基本概念1.1? ?? ?#include< >与#include" "? 1.? ?#include ...

  8. c语言 浮点型数据怎么存放,C语言学习之浮点型数据存储

    C语言学习之浮点型数据 浮点数 浮点型数据分为单精度浮点型(float)和双精度浮点型(double). 单精度(float) 单精度浮点值 取值范围:1.2E-38 到 3.4E+38 精度:6 位 ...

  9. r语言electricity数据集_R语言学习10-查看数据

    当我们处理一个新的数据集的时候,第一件事就是要对数据做一个了解.数据的格式是什么?数据的维度是多少?变量名是什么? 变量如何存储? 是否缺少数据? 数据中是否有任何缺陷? 本次课将学习如何使用R的内置 ...

最新文章

  1. Ehcache学习总结(2)--Ehcache整合spring配置
  2. ubuntu 查询cpu个数
  3. 编写脚本常用的几种语句
  4. 最新版vmWare的安装后如何新建虚拟机
  5. linux系统剪切,Linux 系统裁剪
  6. Java期末复习——知识点+题库
  7. 白话空间统计二十四:地理加权回归(二)
  8. 蛋蛋读NVMe之一:为什么刘备需要NVMe
  9. 产业的互联网化是什么时代_新时代:为什么互联网公司不应忽视65岁以上的一代...
  10. iOS使用颜色生成图片的暗黑适配
  11. Java-UDP通信(实现多发多收、广播、组播)
  12. 2021 csp-s
  13. hive:条件:where and or
  14. Python随机生成一注双色球彩票
  15. TYVJ1172 自然数拆分Lunatic版 - 背包DP[完全背包]
  16. Exercise10-Scipy
  17. 今年C++找工作这么这么难?
  18. python修改桌面壁纸_3分钟教你用python把你的桌面壁纸变得酷起来
  19. 苹果六电池_苹果深夜发布新笔记本,性能太强了
  20. 基于stm32c8t6移植FreeRTOS问题汇总

热门文章

  1. Collection集合 创建/添加/迭代
  2. git同时推送项目到GitHub和Gitee
  3. JVM学习-StringTable字符串常量池
  4. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!
  5. datagrip 导出数据库备份到本地
  6. [vue]vue路由篇vue-router
  7. linux (fedora 28) 制作启动U盘,启动盘
  8. 为当前会话的所有作用域中的任何表最后生成的标识值。
  9. 求N个数的最大公倍数
  10. samba-设定文件共享