zoukankan      html  css  js  c++  java
  • golang的数据类型之基本数据类型的默认值和转换

    默认值:

    整型的默认值: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)
    }

  • 相关阅读:
    [BZOJ2287]【POJ Challenge】消失之物(DP)
    [BZOJ1596] [Usaco2008 Jan]电话网络(树形DP || 贪心)
    [BZOJ3339] Rmq Problem(线段树)
    [BZOJ3378] [Usaco2004 Open]MooFest 狂欢节(树状数组)
    [BZOJ1595] [Usaco2008 Jan]人工湖(单调栈)
    [BZOJ1594] [Usaco2008 Jan]猜数游戏(二分 + 并查集)
    [POJ2778]DNA Sequence(AC自动机 + DP + 矩阵优化)
    [TyvjP1519] 博彩游戏(AC自动机 + DP)
    【模板】AC自动机
    [poj3744] Scout YYF I【概率dp 数学期望】
  • 原文地址:https://www.cnblogs.com/green-frog-2019/p/11337497.html
Copyright © 2011-2022 走看看