Golang基础

文章目录

  • 变量初始化语句
          • 类型推导
          • 批量初始化
    • 短变量声明
    • 匿名变量
  • Go语言字符串常用用法
      • 字符串拼接
        • 1. fmt.Sprintf()函数
          • 2.strings.Join()
        • 3.buffer.WriteString()
    • Go语言字符串其他常用用法
    • 1.占位符
        • 1. %v、%+v、%#v
        • 2.%T 获取数据类型
        • 3.布尔占位符
          • %t
        • 4.整数占位符
          • (一)%b 二进制
          • (二)%c ==Unicode==码转字符
          • (三)%d 十进制
          • (四) %o,%#o


变量初始化语句

例如

func main() {
	//变量初始化语句
	var name string = "tom"
	var age int = 19
	var b bool = true
	fmt.Printf("name: %v\n", name)
	fmt.Printf("age: %v\n", age)
	fmt.Printf("b: %v\n", b)
}
func main() {
	var (
		name string
		age  int
		b    bool
	)
	name = "Tom"
	age = 19
	b = true
	fmt.Printf("name: %v\n", name)
	fmt.Printf("age: %v\n", age)
	fmt.Printf("b: %v\n", b)
}
类型推导

在声明变量时,根据初始化值进行推导省略类型

func main() {
	var name = "tom"
	var age = 19
	var b = true
	fmt.Printf("name: %v\n", name)
	fmt.Printf("age: %v\n", age)
	fmt.Printf("b: %v\n", b)
}
批量初始化
func main() {
	//批量初始化
	var name, age, b = "tom", 20, true
	fmt.Printf("name: %v\n", name)
	fmt.Printf("age: %v\n", age)
	fmt.Printf("b: %v\n", b)
}

短变量声明

在函数内部可以使用 := 运算符对变量进行声明和初始化。
短变量不能放在函数外边

func main() {
	// 短变量声明
	name := "杨过"
	email := "[email protected]"
	age := 20
	fmt.Printf("name: %v\n", name)
	fmt.Printf("email: %v\n", email)
	fmt.Printf("age: %v\n", age)
}

匿名变量

如果我们接收到多个变量,有一些变量使用不到,可以使用下划线_表示变量名称

func getNameAndAge() (string, int) {
	return "tom", 20
}

func main() {
	_, age := getNameAndAge()
	fmt.Printf("age: %v\n", age)
}


Go语言字符串常用用法

字符串拼接

1. fmt.Sprintf()函数

import "fmt"

func main() {
	name := "tom"
	age := "20"
	msg := fmt.Sprintf("%s,%s", name, age)
	fmt.Printf("msg: %v\n", msg)
}

2.strings.Join()
func main() {
	name := "tom"
	age := "20"
	s := strings.Join([]string{name, age}, ",")
	fmt.Printf("s: %v\n", s)
}

3.buffer.WriteString()

效率比较高

import (
	"bytes"
	"fmt"
)

func main() {
	//字符串连接
	var buffer bytes.Buffer
	buffer.WriteString("tom")
	buffer.WriteString(",")
	buffer.WriteString("20")
	fmt.Printf("buffer.String(): %v\n", buffer.String())
}


Go语言字符串其他常用用法

package main

import (
	"fmt"
	"strings"
)

func main() {
	// Go语言字符串常用用法

	s := "Hello World"
	//字符串分割
	fmt.Printf("strings.Split(s, \" \"): %v\n", strings.Split(s, " "))
	//查看是否存在关键字
	fmt.Printf("strings.Contains(s, hello): %v\n", strings.Contains(s, "hello"))
	//小写
	fmt.Printf("strings.ToLower(s): %v\n", strings.ToLower(s))
	//大写
	fmt.Printf("strings.ToUpper(s): %v\n", strings.ToUpper(s))
	//判断字符串前缀是否为“Hello”,output为bool类型
	fmt.Printf("strings.HasPrefix(s, \"Hello\"): %v\n", strings.HasPrefix(s, "Hello"))
	//判断字符串后缀是否为“world”,output为bool类型
	fmt.Printf("strings.HasSuffix(s, \"World\"): %v\n", strings.HasSuffix(s, "world"))
	//查找第一个字符串位置index
	fmt.Printf("strings.Index(s, \"o\"): %v\n", strings.Index(s, "o"))
	//查找最后一个字符串的位置LastIndex
	fmt.Printf("strings.LastIndex(s, \"o\"): %v\n", strings.LastIndex(s, "o"))

}


1.占位符

1. %v、%+v、%#v

%v:获取数据的值,如果实现了error 接口,仅表示错误消息。

fmt.Printf("%v", data) 
// 输出 
{例子}

fmt.Printf("%v", errors.New("我错了"))
// 输出
我错了
。

%+v:获取数据的值,如果结构体,会携带字段名

fmt.Printf("%+v", data)
// 输出
{Content:例子}

%#v:获取数据的值,如果是结构体,会携带结构体名和字段名。

fmt.Printf("%#v", data)
// 输出
main.Example{Content:"例子"}

2.%T 获取数据类型

fmt.Printf("%T", data)
// 输出
main.Example

3.布尔占位符

%t
fmt.Printf("%t", true)
// 输出
true

4.整数占位符

(一)%b 二进制
fmt.Printf("%b", 4)
// 输出
100
(二)%c Unicode码转字符
fmt.Printf("%c", 0x82d7)
// 输出
(三)%d 十进制
fmt.Printf("%d,%d,%d", 10, 010, 0x10)
// 输出
10,8,16
(四) %o,%#o
fmt.Printf("%o,%o,%o", 10, 010, 0x10)
// 输出
12,10,20

在很多开发语言中,0 打头的数字都表示八进制。通过 %#o 输出带 0 开头

fmt.Printf("\n%#o\n", 10)
// 输出
012

And more
更多占位符请点击



你可能感兴趣的:(golang,开发语言,后端)