zoukankan      html  css  js  c++  java
  • Go语言学习笔记四--基本数据类型与string类型常用方法

    一、基本数据类型之整数浮点数

    package main
    
    import "fmt"
    
    func main() {
        var a = 10
        var b int16 = 20
        fmt.Println(a, b)
        b = int16(a)
        fmt.Println(b)
    
        c := 3.14
        fmt.Println(c)
        var d float32 = 12.6
        fmt.Println(d)
        fmt.Println(c + float64(d))
    }

    二、string字符串类型的使用

      1 package main
      2 
      3 import (
      4     "fmt"
      5     "strings"
      6 )
      7 
      8 func main() {
      9     var s1 = "hello"
     10     fmt.Println(s1)
     11 
     12     s2 := " world"
     13     fmt.Println(s2)
     14 
     15     var s3 = s1 + s2 //字符串拼接
     16     fmt.Println(s3)
     17 
     18     var s4 = "ABCD
    efgh"//遇到特殊字符特殊处理
     19     fmt.Println(s4)
     20 
     21     var s5 = `1234
    5678` //反引号会将括号内所有字符打印出来,包括任何特殊字符
     22     fmt.Println(s5)
     23 
     24     var l6 = len(s4)
     25     fmt.Println(l6)
     26 
     27     var s6 = fmt.Sprintf("%s--%s--%s",s1,s2,s3)//字符串格式化拼接方式
     28     println(s6)
     29 
     30     ipAddr := "192.168.0.119;39.105.45.77"
     31 
     32     ipArray := strings.Split(ipAddr,";")//字符串分割 以分号作为分割
     33 
     34     fmt.Printf("The first ip:%s
    ",ipArray[0])
     35     fmt.Printf("The second ip:%s
    ",ipArray[1])
     36 
     37     result := strings.Contains(ipAddr,"39.105.45.77")//查看是否包含子串
     38     fmt.Println(result)
     39 
     40     str := "http://baidua.com"
     41     if strings.HasPrefix(str,"http") {
     42         println("This is a http url")
     43     } else {
     44         println("This isn't http url")
     45     }
     46 
     47     if strings.HasSuffix(str,"baidu.com") {
     48         println("this is a baidu url")
     49     } else {
     50         println("this isn't baidu url")
     51     }
     52 
     53     index := strings.Index(str,"baidu")
     54     println(index)
     55 
     56     index = strings.LastIndex(str,"a")
     57     println(index)
     58 
     59     strIpArray := strings.Join(ipArray,"----")
     60     println(strIpArray)
     61 
     62     //字符串底层就是一个byte数组
     63     s7 := "ABCDEF"
     64     fmt.Printf("s7[0] = %c
    ",s7[0])
     65 
     66     //很明显这个range返回值是两个 前面表示数组的下标 后面表示当前下标的值
     67     for index, ch := range s7{
     68         fmt.Printf("s7[%d] = %c
    ",index, ch)
     69     }
     70     //如果就一个返回值的话那就是返回数组的下标
     71     for ch := range s7 {
     72         fmt.Println(ch)
     73     }
     74 
     75     //字符串是没办法通过下标进行修改的 因此我们要将字符串转成byte数组
     76     var byteSplit []byte
     77     byteSplit = []byte(s7)
     78     for i := 0; i < len(byteSplit); i++ {
     79         fmt.Printf("%c ", byteSplit[i])
     80     }
     81     println()
     82 
     83     //修改数组元素然后转成字符串即可完成修改字符串
     84     byteSplit[0] = 'M'
     85     s7 = string(byteSplit)
     86     println(s7)
     87 
     88     //由于字符串的底层原理是byte 所以在求字符串长度的时候,求出来的是byte的长度
     89     s8 := "小尾学长"
     90     fmt.Printf("s8 len = %d
    ", len(s8)) //长度是12 因为每个中文占三个字节
     91 
     92     //在go里面表示一个utf8的字符使用的是rune
     93     var c1 rune= '中'
     94     fmt.Printf("c1 = %c
    ",c1)
     95 
     96     var runeSplit []rune
     97     runeSplit = []rune(s8)
     98     fmt.Printf(" %c
     %c
     %c
     %c
    ",runeSplit[0],runeSplit[1],runeSplit[2],runeSplit[3] )
     99     fmt.Printf("runeSplit len is %d 
    ",len(runeSplit))//长度是4
    100     runeSplit[3] = '姐'
    101     s8 = string(runeSplit)
    102     println(s8)//变成小尾学姐啦...
    103 
    104 }
  • 相关阅读:
    vim配置
    git rebase
    mongodb的docker-compose.yml
    Nginx配置BrowserRouter跟随react-router
    Flux Architecture & Redux Data Flow & redux & react-redux PPT
    from acwing 从算法数量推算算法复杂度
    evalRPN 逆波兰算术
    二分区间
    Flex布局
    Treap 模板
  • 原文地址:https://www.cnblogs.com/xwxz/p/13297726.html
Copyright © 2011-2022 走看看