输出 sting

小说:巧解汉字作者:密董邓更新时间:2019-03-25字数:51916

奥斯卡却道:“让别人预先知道我们的实力当然不好。这样对手就能够针对我们的情况做出战术调整。这预选赛或许没什么,但不要忘了,我们在总决赛和晋级赛中要面对的对手强大得多。失去了突然性对我们会很不利。”

世上本就无蓝颜

“老奴的第三个建议就是殿下的革新不要操之过急,很多革新都会触犯到大集团的利益,比如土地兼并,殿下若贸然拿土地开刀,必然会得罪整个宗室,那对殿下相当不利,我建议殿下还是以稳为上,稳定几年,再徐徐图之。”
“是!”众人的心中都不禁有些胆寒,他们今天要围住的人居然是龙王,龙王是谁?黑龙会里面一人之下,万人之上的人!尤其是那个带头的长发大哥,心中更是胆寒不已,如果要不是看到了唐欣身上的那件西装的话,他说不定就要上黄泉了!

“这。”县令挠了挠脑袋,快速回想自己所看过的状纸,确实如此,陆已不懂水性,突然发疯落水而亡。

输出 sting


切片Slice在go语言中是单独的类型(指向底层的数组),不同于python(对可迭代对象操作的工具),注意区分数组和slice的区别

  • 定义一个空slice,格式var s []int,这种既没有长度也没有元素赋值的类型(相比叫array)
  • 数组的基本操作如下 ,类似与python中列表切片的操作,详见实例

    package main
    import "fmt"
    
    func main() {
        var s1 []int                                //这样就是一个slice类型,既没有长度也没有元素赋值
        a := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} //这是一个数组
        s2 := a[5:10]                               //切片,索引5到10的元素,不包含索引为10
        s3 := a[:3]                                 //切片,索引1-3的元素,不包含索引3
        s4 := a[6:]                                 //切片,第6个索引到最后一个索引的元素
        s5 := a[:]                                  //切片,复制一个数组
        fmt.Println(s1)
        fmt.Println(a)
        fmt.Println(s2) //数组的切片,类似python
        fmt.Println(s3)
        fmt.Println(s4)
        fmt.Println(s5)
    }
    
    /*输出
    s1--->  []
    a--->   [0 0 0 0 0 0 0 0 0 0]
    s2--->  [6 7 8 9 10]
    s3--->  [1 2 3]
    s4--->  [7 8 9 10]
    s5--->  [1 2 3 4 5 6 7 8 9 10]
    */

使用make初始化一个slice类型,包含三个参数

  • ①切片类型 []int
  • ②初始长度 len
  • ③容量 cap

    package main
    import "fmt"
    
    func main() {
        s1 := make([]int, 3, 10)      //使用make初始化一个slice,包含三个参数:①切片类型②初始长度③容量
        fmt.Println(len(s1), cap(s1)) //输出长度,容量
        fmt.Println(s1)
    }
    
    /*输出:
    len(s1)--->3
    cap(s1)--->10
    s1--->  [0 0 0]  //可变数组
    */

Reslice ,在原slice基础上再次切片,slice一个数组时,不仅取出了len,同时容量也会得到相应的切片。

  • 示例

    //Reslice,在slice基础上再次slice.
    package main
    import "fmt"
    
    func main() {
        a := []byte{"a", "b", "c", "d", "e", "f", "g", "k", "m"} //定义一个数组,元素为byte类型
        sa := a[3:5]                                             // slice切片,取索引三到五,不包含索引5
        sb := sa[1:3]
        fmt.Println(string(sa))
        fmt.Println(len(sa), cap(sa))
        fmt.Println(string(sb))
        fmt.Println(len(sb), cap(sb))
    }
    
    /*输出
    sting(sa)--->   de
    len(sa)--->     2
    cap(sa)--->     6
    string(sb)--->  ef
    len(sb)--->     2
    cap(sb)--->     5
    */

Append,类似python中list类型,使用append,从数组尾部追加元素

  • 可以将一个slice追加在另一个slice尾部
  • 如果最终长度未超过追加到slice的容量,则返回原始slice
  • 如果超过追加的slice的容量则将重新分配数组并拷贝原始数据

    package main
    import "fmt"
    
    func main() {
        s1 := make([]int, 3, 8) //初始化slice,长度位3,容量为8
        fmt.Printf("%p
    ", s1)  //输出s1的内存地址
        fmt.Println(s1)
        s1 = append(s1, 1, 2, 3) //末尾追加三个元素,cap依然为8
        fmt.Printf("%p
    ", s1)   //原来的slice
        fmt.Println(s1)
        s1 = append(s1, 1, 2, 3, 4) //继续追加元素,超过原s1容量,会重新分配新的内存地址
        fmt.Printf("%p
    ", s1)      //cap容量超过8,为9
        fmt.Println(s1)
    }
    
    /*
    p*s1--->    0xc042070040
    s1--->      [0 0 0]
    p*s1s1-->   0xc042070040
    s1--->      [0 0 0 1 2 3]
    p*s1--->    0xc04205e080   //新的内存地址
    s1--->      [0 0 0 1 2 3 1 2 3 4]
    */
  • 当两个slice同时指向某一个数组时,改变某一个slice索引时,另一个slice索引值及原数组的索引也会改变

    package main
    import "fmt"
    
    func main() {
        a := []int{1, 2, 3, 4, 5, 6}
        s1 := a[2:5]
        s2 := a[1:3]
        fmt.Println(s1, s2)
        s1[0] = 9
        fmt.Println(s1, s2)
        fmt.Println(a)
    }
    
    /*
    s1--->  [3 4 5]
    s2--->  [2 3]
    //更改s1的slice索引后,s2的索引也会改
    s1--->  [9 4 5]
    s2--->  [2 9]
    a--->   [1 2 9 4 5 6]
    */

copy,格式 copy(s1,s2), 将s2拷贝到s1数组中,当len(s1) > len(s2)时,最终将s2中的索引
替换掉s1的索引,当len(s1)<len(s2)时,s1的索引值全部被对应s2的索引替换

  • 示例

    package main
    import "fmt"
    
    func main() {
        s1 := []int{1, 2, 3, 4, 5}
        s2 := []int{6, 7, 8}
        copy(s1, s2) //将s2的元素拷贝到s1,s2
        fmt.Println(s1)
    
        copy(s2, s1)
        fmt.Println(s2)
    
        copy(s1, s2[2:3]) //只拷贝某一切片的索引
        fmt.Println(s1)
    }
    
    /*输出
    s1--->  [6 7 8 4 5]
    s2--->  [1 2 3]
    s1--->  [8 2 3 4 5]
    */

当前文章:http://zxqss.com/news/2018112328617/index.html

发布时间:2019-03-25 03:56:13

不要让孩子未来孤苦无依 风水专家罗李华与您分享福州风水问题 再次关注“被普通”的校园凶杀案的犯罪者 2011成长营:参加国际大赛的经历 为孩子去学心理学,必要么? 年轻人,不要把时间浪费在股市上 24个细节深度解读《美人鱼》 看《芈月传》,你需要先知道的历史知识

小暑到,盛夏始,小暑节气话小暑 骗子为什么可以得逞 少林CEO释永信,风口浪尖之下当如何? 向死而生:从《道士下山》到天津爆炸,来谈谈生死 揭露人性丑恶的五大心理实验 由超女王贝整容死亡看整容者心理 鸡肋般相亲男友,该不该分手? 金钱才是爱情的源泉 你从来都不知道今天在地铁里能遇见谁 幼师对儿童心理成长的重要作用(详) 戒除心毒,便可成就未来。 女生如何练身材--男生的看法 如何让“心理成长”帮助孩子更优秀 不占便宜是教养,人情往来是修养 易经智慧 摸胸校尉之《寻女诀》 渴了累了,青少年少喝红牛和可乐! 怎样安慰情绪低落的朋友 让心理学社会学教你 《鬼谷子七十二术》全解

编辑:平辛扁侯

我要说两句: (0人参与)

发布