• go map slice array channel 传参


     1 package main
     2 
     3 import (
     4     "fmt"
     5     //"net/http"
     6 )
     7 
     8 func modifyMap(s map[string]interface{}) {
     9     s["a"]="a"
    10 }
    11 func modifyArray(a [5]int) {
    12     a[2]=100
    13 }
    14 func modifySlice(b []int) {
    15     b[0]=0
    16 }
    17 func modifyChannels(ch chan int) {
    18     ch<-2;
    19 }
    20 func main() {
    21     s := make(map[string]interface{})
    22     s["a"]="b"
    23     fmt.Println(s);
    24     modifyMap(s);
    25     fmt.Println(s);
    26     a := [5]int{1,2,3,4,5}
    27     fmt.Println(a);
    28     modifyArray(a)
    29     fmt.Println(a);
    30     b := []int{1,2,3,4,5}
    31     fmt.Println(b);
    32     modifySlice(b);
    33     fmt.Println(b);
    34     ch :=make(chan int,10)
    35     fmt.Println(len(ch));
    36     modifyChannels(ch)
    37     fmt.Println(len(ch));
    38 }
    test.go
    map[a:b]
    map[a:a]
    [1 2 3 4 5]
    [1 2 3 4 5]
    [1 2 3 4 5]
    [0 2 3 4 5]
    0
    1

    由结果可知除了数组是传值,map、slice、chan都是传引用

  • 相关阅读:
    my.cnf
    js日期和毫秒互转
    传送门
    js 十进制转十六进制
    关键字
    常见异常
    Map迭代
    Hibernate

    MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flushhosts' 解决方法
  • 原文地址:https://www.cnblogs.com/cdyboke/p/6605689.html
Copyright © 2020-2023  润新知