golang基础(二):常量、类型、字符串常用操作

目录

一、定义常量

const 定义常量,不可更改。可以一次性定义多个常量,但必须都要赋值。

二、基础数据类型

1. 整型 int

2. 浮点型 float

3. 布尔型 bool

4. 字符串 string

三、字符串常用操作

1. 转义字符

2. 长度、拼接、判断等


一、定义常量

const 定义常量,不可更改。可以一次性定义多个常量,但必须都要赋值。

package main

import "fmt"

func main() {
    const username = "张三"
    fmt.Println(username)

    // 定义多个常量
    const (
        username = "张三"
        age      = 12
        sex      = "男"
    )
    fmt.Println(username, age, sex)

    // 多个常量第一个赋值后面的值跟第一个一致
    const (
        a = 1
        b
        c
    )
    fmt.Println(a, b, c) // 1 1 1
    const (
        a = 1
        b
        c = 2
    )
    fmt.Println(a, b, c) // 1 1 2
    
    // 定义常量iota函数,默认从0开始一直累加
    const (
        a = iota
        b
        c
    )
    fmt.Println(a, b, c) // 0 1 2 
    const (
        a = iota
        b
        c = 100
    )
    fmt.Println(a, b, c) // 0 1 100
    const(
        a = iota
        _
        c
    )
    fmt.Println(a, c) // 0 2
}

二、基础数据类型

1. 整型 int

int、uint 根据自身电脑系统决定是 int32、uint32 还是 int64、uint64

int8、uint8

int16、uint16

int32、uint32

int64、uint64

上述所有不在细讲,实际工作中如果用不到字符字节运算,上述类型做个了解即可。另外获取整形所占字节量,使用unsafe。

package main

import "fmt"

func main() {
    const a int = 1
    fmt.Println(unsafe.Sizeof(a)) // 1
}

2. 浮点型 float

浮点型也就是小数点类型,但是所有开发语言的浮点型精确度都有问题,需要单独运算。因为二进制转十进制的时候精度都会有问题。

package main

import "fmt"

func main() {
    const (
        a float32 = 8.2
        b float32 = 3.8
    )

    fmt.Println(a - b) // 4.3999996
}

3. 布尔型 bool

true\false

package main

import "fmt"

func main() {
    a := true
    fmt.Printf("%v -- %T", a, a) // true -- bool 这里的%v是获取a的值,%T是获取a的类型
}

4. 字符串 string

package main

import "fmt"

func main() {
    a := "hello golang"
    fmt.Printf("%v -- %T", a, a) // hello golang -- string
}

三、字符串常用操作

1. 转义字符

转义字符各语言都差不多,但是要在双引号内使用。

注:多行字符串输出方式

package main

import "fmt"

func main() {
    var str = `this is str
    this is str
        this is str
    this is str

    `
    fmt.Println(str)
}

2. 长度、拼接、判断等

len : 一个汉字占3个字节,一个英文占用一个。

package main

import "fmt"

func main() {
    var a = "你好"
    fmt.Println(len(a)) // 6
}

+ \ fmt.Sprintf()

package main

import "fmt"

func main() {
    str1 := "你好"
	str2 := "golang"

	fmt.Println(str1 + str2) // 你好golang

    str1 := "This is" +
		" golang " +
		"not php"
	fmt.Println(str1) // This is golang not php

    str1 := "你好"
	str2 := "golang"
	str3 := fmt.Sprintf("%v %v", str1, str2)
	fmt.Println(str3) // 你好 golang
}

strings.Split \ strings.Join

package main

import (
    "fmt"
    "strings"
)

func main() {
    str1 := "123-456-789"
	str2 := strings.Split(str1, "-") 
	fmt.Println(str2) // 得到切片[123 456 789] 也就是数组

	str3 := strings.Join(str2, "*")
	fmt.Println(str3) // 123*456*789
}

strings.Contains \ strings.HasPrefix \ strings.HasSuffix \ strings.Index \ strings.LastIndex

package main

import (
    "fmt"
    "strings"
)

func main() {
    str1 := "This is str"
	str2 := "is"
	str3 := "xxx"
	str4 := "This"
	fmt.Println(strings.Contains(str1, str2)) // true
	fmt.Println(strings.Contains(str1, str3)) // false

	fmt.Println(strings.HasPrefix(str1, str4)) // true
	fmt.Println(strings.HasSuffix(str1, str4)) // false
	// 都是从前往后数,从0开始
	fmt.Println(strings.Index(str1, str2))     // 2
	fmt.Println(strings.LastIndex(str1, str2)) // 5
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值