美文网首页
2-6 Go --- 基本数据类型 (字符串 string、布尔

2-6 Go --- 基本数据类型 (字符串 string、布尔

作者: 捌千里路雲和月 | 来源:发表于2021-07-08 23:13 被阅读0次
  • 布尔值 bool:
  • 布尔值只可以是 true 或 false。布尔值一般用来反映表达式的结果真还是假。真返回true,假返回false。可以理解为表达式成立或不成立。
  • 布尔类型的零值为 flase。

  • 两个值比较,返回布尔值。
package main

import "fmt"

func main() {
    fmt.Println(1 == 1)      // 1 等于 1,结果为真,返回 true。
    fmt.Println(1 == 2)      // 1 等于 2,结果为假,返回 flase。
}
//输出结果;
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
true
false
  • printf("%T") 查看值的类型。
package main

import "fmt"

func main() {
    fmt.Printf("%T\n", 1 == 1)   // %T查看 1 等于 1 返回的数据类型
    fmt.Printf("%T", 1 == 2)    // %T查看 1 等于 2 返回的数据类型    
}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
bool      // true 和 flase 都是 bool 布尔型。
bool
  • bool 布尔值的零值是 flase。
package main

import "fmt"

func main() {
    var b bool    // 只定义一个 bool 变量 b,不赋值。
    fmt.Println(b)
}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
false      // bool 布尔值的零值是 flase。
  • bool 和 bool 不能参与运算。
package main

import "fmt"

func main() {
    b1 := true      // 赋值 true 到 b1
    b2 := false      //赋值 false 到 b2
    fmt.Printf("%T\n", b1)      // 打印 b1 的类型
    fmt.Printf("%T\n", b2)      // 打印 b2 的类型
    //fmt.Println(b1 + b2)       // 先注释掉 b1 + b2 的加法运算。
}
// 输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
bool      // b1 和 b2 都是 bool 值
bool
-----------------------------------------
package main

import "fmt"

func main() {
    b1 := true
    b2 := false
    fmt.Printf("%T\n", b1)
    fmt.Printf("%T\n", b2)
    fmt.Println(b1 + b2)      // 恢复注释部分,b1 + b2 进行加法运算
}
// 输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
# command-line-arguments
.\mian.go:10:17: invalid operation: b1 + b2 (operator + not defined on bool)
// invalid operation:系统提示无效操作,bool 未被定义。
  • bool 布尔值不能参与数字运算。
package main

import "fmt"

func main() {
    b1 := true      // bool 类型,true 赋值到 b1
    b2 := 2      // int 类型,2 赋值到 b2
    fmt.Println(b1 + b2)      // bool 类型 b1 和 int 类型 b2 相加
}
// 输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
# command-line-arguments
.\mian.go:8:17: invalid operation: b1 + b2 (mismatched types bool and int)
// mismatched types bool and int:bool和int类型不匹配。
  • bool 布尔值不能强制类型转换。
package main

import "fmt"

func main() {
    b1 := true      // bool 类型,true 赋值到 b1
    b2 := 2       // int 类型,2 赋值到 b2
    fmt.Println(int(b1) + b2)      // 强制转换bool类型 b1 为 int 类型
}
// 输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
# command-line-arguments
.\mian.go:8:17: cannot convert b1 (type bool) to type int
// 不能将b1 (bool类型的变量)转换为int类型

  • 字符串 string:
  • 字符串 string 是由字符所组成的一串序列。由 " " 双引号括起来。
package main

import "fmt"

func main() {
// "Hello World" , "您好,世界!" 括号里面的是字符串,把它们赋值到 s1 和 s2 变量。
    s1 := "Hello World"      
    s2 := "您好,世界!"
    fmt.Println(s1)
    fmt.Println(s2)
}

// 输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
Hello World
您好,世界!
  • 字符串的空值是 ” “ (空值)。
package main

import "fmt"

func main() {
    var name string    // 只定义字符串类型,不赋值。
    fmt.Println(name)
}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
            <----------------------------------  ## 这里输出的是空值。
  • 定义多行字符串一:\n 转译符
package main

import "fmt"

func main() {
// 字符串 与 字符串之间用 \n 转译符换行,\t tab键
    s1 := "\t春晓\n    孟浩然 (唐代)\n春眠不觉晓,处处闻啼鸟。\n夜来风雨声,花落知多少。"
    fmt.Println(s1)   
    fmt.Println(s1)

}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go
        春晓
    孟浩然 (唐代)
春眠不觉晓,处处闻啼鸟。
夜来风雨声,花落知多少。 
  • 定义多行字符串二:反引号。(tab键上面)
package main

import "fmt"

func main() {
// 反引号括住的范围都可以自由编写内容。
    s1 := `
      赠汪伦
    李白 〔唐代〕
李白乘舟将欲行,忽闻岸上踏歌声。
桃花潭水深千尺,不及汪伦送我情。
    `
    fmt.Println(s1)

}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go

          赠汪伦
        李白 〔唐代〕
李白乘舟将欲行,忽闻岸上踏歌声。
桃花潭水深千尺,不及汪伦送我情。

------------------------------------- 分隔线 ----------------------------------

tips:使用反引号定义多行字符的方法,不能在反引号内使用转译符。

package main

import "fmt"

func main() {

    s1 := `
      赠汪伦
    李白 〔唐代〕
李白乘舟将欲行,忽闻岸上踏歌声。
桃\n花\n潭\n水\n深n千\n尺,不及汪伦送我情。    //反引号范围内不能使用转移符
    `
    fmt.Println(s1)

}
//输出结果:
PS C:\Users\86186\go\src\chapter2\2.6> go run .\mian.go

          赠汪伦
        李白 〔唐代〕
李白乘舟将欲行,忽闻岸上踏歌声。
桃\n花\n潭\n水\n深n千\n尺,不及汪伦送我情。  //转译符在反引号内不起作用,
                                          //反引号会把所有内容原样输出。

相关文章

网友评论

      本文标题:2-6 Go --- 基本数据类型 (字符串 string、布尔

      本文链接:https://www.haomeiwen.com/subject/nztnultx.html