默认值:

整型的默认值:0

浮点型的默认值:0
字符串的默认值:""   //空
布尔类型的默认值:false

package main
import "fmt"

func main() {
  var a int //0
  var b float32 //%f的输出是0.000000,%v的输出是0
  var c float64 //%f的输出是0.000000,%v的输出是0
  var isMarryied bool //false
  var name string //""

  //这里的%v 表示按照变量的值输出
  fmt.Printf("a=%d,b=%v,c=%v,isMarryied=%v,name=%v",a,b,c,isMarryied,name)
}

转换:

golang和java / c 不同,Go在不同类型的变量之间赋值时需要显示转换。也就是说Golang中数据类型不能自动转换。

基本语法:
  表达式T(v) 将值v转换为类型 T
  T: 就是数据类型,比如int32, int64, float32等等
  v: 就是需要转换的变量

案例演示:
  var i int = 42
  var f float64 = float64(i)
  var u uint8 = uint8(f)
  fmt.Println(i,f,u)

细节说明:

  1) Go中,数据类型的转换可以是从 表示范围小-->表示范围大, 也可以 范围大-->范围小
  2) 被转换的是变量存储的数据(即值),变量本身的数据类型并没有变化!
  3)在转换中,比如将int64 转成int8,编译时不会报错,只是转换的结果是按溢出处理,和我们希望的结果不一样。 因此在转换时,需要考虑范围。
  var num1 int64 = 999999
  var num2 int8 = int8(num1)
  fmt.Println("num2=", num2) //63(这个就溢出了)

课堂练习:

第一题:

func main() {

  var n1 int32 = 12
  var n2 int64
  var n3 int8

  n2 = n1 + 20 //int32 -→ int64 错误
  n3 = n1 + 20 //int32 -→ int8 错误
}

如何修改上面的代码?
func main() {
  var n1 int32 = 12
  var n2 int64
  var n3 int8

  n2 = int64(n1) + 20
  n3 = int8(n1) + 20
  fmt.Println("n2=", n2, "n3=", n3)
}

第二题:

func main() {
  var n1 int32 = 12
  var n3 int8
  var n4 int8

  n4 = int8(n1) + 127 //编译能通过,只是会有溢出
  n3 = int8(n1) + 128 //编译报错,128超过了int8的范围了,所以编译的时候报错。
  fmt.Println(n3)
}

最新文章

  1. 手机GUI自动化测试工具选择
  2. airflow 部署
  3. Mybatis 总结
  4. Ajax完整篇(转载)
  5. [转]C#中POST数据和接收的几种方式
  6. cassandra 公司内分享 ppt
  7. JS 关闭 页面 浏览器 事件
  8. MySQL数据库my.cnf性能参数如何调优
  9. 关于IE7 默认有边框的解决方案
  10. HttpClientUtils.java
  11. 如何让div上下左右都居中
  12. leetcode2 Two Sum II – Input array is sorted
  13. 【Tika基础教程之一】Tika基础教程
  14. python dict traversal
  15. spring boot + vue + element-ui全栈开发入门——windows开发环境
  16. oracle NVL,NVL2,NULLIF,COALESCE
  17. Oracle的闪回技术--闪回已删除的表
  18. java 监控工具 jconsole
  19. 《JAVA与模式》之装饰模式
  20. 在EntityFramework6中管理DbContext的正确方式——2DbContext的默认行为(外文翻译)

热门文章

  1. 问题 1436: 地宫取宝 (dp)
  2. Spring学习笔记(3)——快速入门
  3. Introduction to Sound Programming with ALSA
  4. rmdir -删除空目录
  5. 吉首大学2019年程序设计竞赛(重现赛) J 滑稽树下你和我 (递归)
  6. 用Matlab的.m脚本文件处理实验室数据
  7. 转载:Eclipse下的java工程目录
  8. Oracle参数
  9. LDD3 第11章 内核的数据类型
  10. 10.17 linux 文件权限