前言

整型、浮点型、布尔型、字符串

1. 整型

int8int16int32int64uint8uint16uint32uint64
uint8byteint16shortint64long

2. 浮点型

float32float64IEEE 754float323.4e38math.MaxFloat32float641.8e308math.MaxFloat64

3. 布尔值

booltrue(真)false(假)
    注意:

    布尔类型变量的默认值为false。

    Go语言中不允许将整型强制转换为布尔型.

    布尔型无法参与数值运算,也无法与其他类型进行转换。

4.字符串

4.1. 字符串
(int、float32、float64、bool等)ASCII
s1 := "hello"
s2 := "你好"
4.2 转义字符串

Go 语言的字符串常见转义符包含回车、换行、单双引号、制表符等,如下表所示。

转义 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
' 单引号
" 双引号
\ 反斜杠

举个例子,我们要打印一个Windows平台下的一个文件路径:

package main
import (
    "fmt"
)
func main() {
    fmt.Println("str := "D:\project\main.exe"")
}
4.3 多行字符串
反引号
    s1 := `第一行
    第二行
    第三行
    `
    fmt.Println(s1)

反引号间换行将被作为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。

4.4. 字符串的常用操作
方法 介绍
len(str) 求长度
或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.Contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作
4.5. 字符(byte和rune类型)
字符用单引号(’)包裹起来
    var a := '中'

    var b := 'x'

Go 语言的字符有以下两种:

    uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。

    rune类型,代表一个 UTF-8字符。
runeruneint32runeUnicodeUnicodebyte
3~4
4.6 修改字符串
[]rune或[]bytestring
    func changeString() {
        s1 := "hello"
        // 强制类型转换
        byteS1 := []byte(s1)
        byteS1[0] = 'H'
        fmt.Println(string(byteS1))

        s2 := "博客"
        runeS2 := []rune(s2)
        runeS2[0] = '狗'
        fmt.Println(string(runeS2))
    }

5. 类型转换

Go语言中只有强制类型转换,没有隐式类型转换

强制类型转换的基本语法如下:

    T(表达式)

其中,T表示要转换的类型。表达式包括变量、复杂算子和函数返回值等.

比如计算直角三角形的斜边长时使用math包的Sqrt()函数,该函数接收的是float64类型的参数,而变量a和b都是int类型的,这个时候就需要将a和b强制类型转换为float64类型。

    func sqrtDemo() {
        var a, b = 3, 4
        var c int
        // math.Sqrt()接收的参数是float64类型,需要强制转换
        c = int(math.Sqrt(float64(a*a   b*b)))
        fmt.Println(c)
    }

 

本文出至:学新通