Go语言 基本数据类型

Go 语言数据类型 

浮点型
布尔型
字符串
数组
切片
结构体
函数
map
通道 。。。。。等

整型

整型分为两大类

按长度分为:
int8、int16、int32、int64 

对应的无符号整型:
uint8、uint16、uint32、uint64
package main

import "fmt"
// 整型
数字字面量语法,便于开发者以二进制、八进制、16进制浮点数格式定义数字
func main() {
    var i1 = 101 //
    fmt.Printf("%d\n",i1)  //%d 表示10进制数
fmt.printf("%b"\n,i1) //%b 表示2进制数
i2 := 0xff fmt.Printf("%x\n",i2) //%x 表示16进制数 i3 := 077 fmt.Printf("%o\n",i3) //%o 表示8进制 i4 := "hello world" fmt.Printf("%s\n",i4) //%s 表示字符串 i5 := int8(9) fmt.Printf("%T\n",i5) //%T查看类型 明确指定init8类型,否则默认int类型
}

 浮点型

package main

import "fmt"

//浮点数

func main() {
//math.MaxFloat32 //float32 最大值
  f1 := 1.23456
  fmt.Printf("%T\n",f1)  //默认Go语言中的小数是float64类型
  f2 := float32(1.23456)
  fmt.Printf("%T\n",f2)  //显示声明float32类型
  f1 = f2 //float32类型的值不能直接赋值给float64 类型
}

布尔值

Go语言中以bool类型进行声明布尔型数据,布尔型数据只有true(真)和false(假)两个值。

 

#布尔类型变量的默认值为false。
#Go 语言中不允许将整型强制转换为布尔型.
#布尔型无法参与数值运算,也无法与其他类型进行转换
package main

import "fmt"

func main() {
 b1 := true 
 var b2 bool   //默认false
 fmt.Printf("%T\n",b1) //bool
 fmt.Printf("%T value:%v",b2, b2)  //bool value:false

}

 字符串

 Go 语言里的字符串的内部实现使用UTF-8编码。 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符
GO语言字符串必须以双引号包裹,单引号包裹是字符
func.main(){
 //字符串
  s := "helle world"
// 单独字母、汉字、符号、表示一个字符
c1 := 'h'
c2 := 'l'
c3 := '好的'
//字节 1字节8 Bit 8个二进制
//一个字符'A'=1个字节
//1个utf8编码的汉字'沙' 一般占3个字节

字符串转义字符

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

 

 

 

 

 

 

 

 

package main


import "fmt"
import "strings"
//转义符
func main() {
    path := "D:\\go\\abc\\123"
    fmt.Println(path)
    //多行字符串
    s2 := `
   一行
   两行
   三行

`
    fmt.Println(s2)
    //字符串相关操作
    fmt.Println(len(s2))
    //字符串拼接
    name := "理想"
    world := "开心"
    ss := name + world   //第二种 变量名拼接
    fmt.Println(ss)
    ss1 := fmt.Sprintf("%s%s", name, world) //第一种 sprintf 拼接
    fmt.Println(ss1)
    //分割
    ret := strings.Split(path, "\\") //[D: go abc 123]
    fmt.Println(ret)
    //包含
    fmt.Println(strings.Contains(ss,"理性")) //false
    fmt.Println(strings.Contains(ss,"理想")) //true
    //前缀
    fmt.Println(strings.HasPrefix(ss, "理想")) //true
    //后缀
    fmt.Println(strings.HasSuffix(ss, "理想")) //false
    //字符串出现位置
    s4 := "abcded"
    fmt.Println(strings.Index(s4, "c"))  //判断字符出现位置 2
    fmt.Println(strings.LastIndex(s4, "d"))//b字符最后出现的位置 1
   //join 操作
    fmt.Println(strings.Join(ret, "+")) //D:+go+abc+123
}

字符串的常用操作

方法介绍
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作

 

 

 

 

 

 

 

 

 

byte和rune类型

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

uint8类型,或者叫 byte 型,代表了ASCII码的一个字符。
rune类型,代表一个 UTF-8字符。
#当需要处理中文、日文或者其他复合字符时,则需要用到rune类型。rune类型实际是一个int32
package main

import "fmt"
// byte和rune 类型
// 遍历字符串
func main() {
 s := "河流hello たった今"
 n := len(s) //求字符串长度,把长度保存在变量中
 fmt.Println(n)

//字符串修改
s2 := "白萝卜" //[白 萝 卜]
s3 := []rune (s2)  //把字符串强制转换一个rune切片
s3[0] = ''
fmt.Println(string(s3)) //把切片强制转换成字符串
 // 类型转换
 n1 := 10 //int
 var f float64
 f = float64(n1)
 fmt.Println(f)
 fmt.Printf("%T", f)
}

 

posted @ 2020-05-17 10:32  OnePieceNO1  阅读(226)  评论(0)    收藏  举报