2022-01-23

值类型:基本数据类型int系列,float系列,bool,string,数组,结构体struct。

引用类型:指针,切片slice,map,interface,管道chan等都是引用类型

基本数据类型

整型

两类

有符号整数

int8、int16、int32、int64 

无符号整数

uint8、uint16、uint32、uint64

特别的整型:uint,int,uintptr

前两种类型:随着操作系统是多少位,就是多少位的类型

最后一个为无符号整型:用于存放一个指针

数字字面整型:

fmt.Printf("%__", 变量名)

八进制:%o

十六进制:%x |%X

二进制:%b

十进制:%d

八进制以0开头

十六进制0x开头

浮点数

float32

float64

复数

complex64

complex128

布尔值

true

false

字符串转义符

字符串

utf-8

                s1 := "你好"

fmt.Println(s1)

//字符串转义符

fmt.Println("str = \"E:\\GOPROJECT\\go.exe\"")

//多行字符串

s2 := `第一行

  第二行

  第三行`

fmt.Println(s2)


字符串常用操作

长度:len(str)

拼接:+,fmt.Sprintf

分割:strings.Split

是否包含:strings.contains(str,"xxx")

开头:strings.HasPrefix(str, "xx")

结尾:stings.HasSuffix(str,"d")

首次出现位置:strings.Index(str,"x")

最后:strings.LastIndex(str,"x")

出现次数:stings.Count

重复:strings.Repeat(str,2)

转大写:strings.ToLower()

小写:strings.ToUpper()

链接切片Join(str,"-")

去掉字符串首/尾部指定的字符:TrimLeft(str,"x"):TrimRight(str,"x")

去掉收尾的空格:TrimSpace(str2)

                str2 := "  hello world tt"

//去掉字符串首尾指定的字符

fmt.Println(strings.Trim(str2,"t")) //  hello world

fmt.Println(strings.Trim(str2,"ttt")) //注意相同的字母即时数量比str的多也能去掉  hello world

fmt.Println(strings.Trim(str2,"  ")) //去除首尾空格hello world tt

fmt.Println(strings.Trim(str2,"b")) //没有b时不报错返回原字符串  hello world tt


字符

byte---uint8

rune

                //遍历字符串

func traversalString() {

  s := "hello沙河"

  for i := 0; i < len(s); i++ { //byte

      fmt.Printf("%v(%c)", s[i], s[i])

  }

  fmt.Println()

  for _, r := range s { //rune

      fmt.Printf("%v(%c)", r, r)

  }

  104(h)101(e)108(l)108(l)111(o)230(æ)178(²)153(NUll)230(æ)178(²)179(³)

  104(h)101(e)108(l)108(l)111(o)27801(沙)27827(河)

  fmt.Println()

}


因为UTF8编码下一个中文汉字由3~4个字节组成,所以我们不能简单的按照字节去遍历一个包含中文的字符串,否则就会出现上面输出中第一行的结果。

字符串底层是一个byte数组,所以可以和[]byte类型相互转换。字符串是不能修改的 字符串是由byte字节组成,所以字符串的长度是byte字节的长度。 rune类型用来表示utf8字符,一个rune字符由一个或多个byte组成。

修改字符串

字符串是不可修改的,任何修改,都会重新分配内存

                func changeString() {

    s1 := "big"

    byteS1 = []byte(s1)

    byteS1[0]:= 'p'

    fmt.Println(sting(byteS1))

    s2 := "白萝卜"

    runeS2 := []rune(s2)

    runeS2[0] = '红'

    fmt.Println(string(runeS2))

}


类型转换

只有强制类型转换

T(表达式)  T:要转换的类型 表达式:变量,复杂算子,函数返回值

                //类型转换

func sqrtDemo() {

  var a, b = 3, 4

  var c int

  // math.Sqrt():开方 参数为浮点型 强制类型装换

  c = int(math.Sqrt(float64(a*a + b*b)))

  fmt.Printf("%d", c)

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容