1. 程式人生 > >golang學習筆記之引用型別與值型別

golang學習筆記之引用型別與值型別

在golang中只有三種引用型別它們分別是切片slice、字典map、管道channel。其它的全部是值型別,引用型別可以簡單的理解為指標型別,它們都是通過make完成初始化
看下面兩個例子:

    a :=[5]int{2,3,4,5,6}
    b := a
    b[2]=77
    fmt.Println(a, b)

上面定義了一個數組a,它是值型別,複製給b是copy,當b發生變化後a並不會發生任何變化,結果如下:
[2 3 4 5 6] [2 3 77 5 6]

但如果是切片則不然

    a :=[]int{2,3,4,5,6}
    b := a
    b[2
]=77 fmt.Println(a, b)

a和b本質上指向同一個底層陣列

[2 3 77 5 6] [2 3 77 5 6]

相關推薦

golang學習筆記引用型別型別

在golang中只有三種引用型別它們分別是切片slice、字典map、管道channel。其它的全部是值型別,引用型別可以簡單的理解為指標型別,它們都是通過make完成初始化 看下面兩個例子: a :=[5]int{2,3,4,5,6}

es6學習筆記環境搭建結構賦

全域性安裝Babel-cli 在終端中輸入以下命令,如果你安裝很慢的話,可以使用淘寶映象的cnpm來進行安裝。安裝cnpm的方法,大家自己百度吧。 npm install -g babel-cli 雖然已經安裝了babel-cli,只是這樣還不能成功進行轉換,如果你不相信可以輸入下邊的命令

ceph學習筆記五 Pool映射過程

ceph sds Pool Pool是一個抽象的存儲池,它規定了數據冗余的類型以及對應的副本分布策略。目前實現了兩種Pool類型:Replicated類型和Erasure Code類型。一個Pool由多個PG構成。對象映射過程 對象映射過程指的是查找對象在集群中分布的位置信息,其過程分為兩步:A、

python學習筆記split()方法with

很好 self 所有 簡單 car 版本 指定 操作 發生 Python split()方法 以下內容摘自:http://www.runoob.com/python/att-string-split.html 描述 Python split()通過指定分隔符對字符串進行切片

Python學習筆記函數正則

地址 tee 大於等於 格式 匿名函數 驗證碼 分組 indent 引用 Python函數 Pycharm 常用快捷鍵,例如復制當前行、刪除當前行、批量註釋、縮進、查找和替換。 常用快捷鍵的查詢和配置:Keymap Ctrl + D:復制當前行 Ctrl + E:刪除當前

Python學習筆記面對象錯誤處理

實現 單繼承 父類 成對 數據類型 itl 同時 屬性 子類 反射 __import__()函數用於加載類和函數 __import__(name[, globals[, locals[, fromlist[, level]]]]) 參數說明: n

Framework7學習筆記導航欄工具欄的布局類型

class 文件中 div 工具 gpo 導航 log 不同的 布局 一:布局類型 導航欄、工具欄 有多種布局類型,他們分別有不同的表現效果,主要有:靜態布局、固定布局、穿透布局。 二:靜態布局(少用) 靜態布局的導航欄、工具欄,是寫死在頁面文件中的,

Linux學習筆記基礎命令獲取幫助文檔

內容 大寫 用戶 協議 當前時間 switch 使用 主機 當前 一、linux的基本原則:1、 由目的單一的小程序組成,組合小程序,完成復雜任務;2、 一切皆文件;3、 盡量避免捕獲用戶接口;4、 配置文件保存為純文本格式二、shellGUI :Graphic U

併發程式設計學習筆記原子變數非阻塞同步機制(十二)

概述 java.util.concurrent包中的許多類,比如Semaphore和ConcurrentLinkedQueue,都提供了比使用Synchronized更好的效能和可伸縮性.這是因為它們的內部實現使用了原子變數和非阻塞的同步機制. 近年來很多關於併發演算法的研究都聚焦在非阻塞演算法(nonb

程世東老師TensorFlow實戰——個性化推薦,程式碼學習筆記②模型訓練測試

個性化推薦第二部分:模型訓練 程式碼來自於知乎:https://zhuanlan.zhihu.com/p/32078473 /程式碼地址https://github.com/chengstone/movie_recommender/blob/master/movie_recommender.

網路資訊保安學習筆記對稱密碼傳統加密技術

對稱密碼 對稱密碼即加密和解密是可逆的過程 傳統加密技術 一般的傳統加密技術均為對稱密碼 一、對稱密碼模型 1.對稱加密有五個基本成分 明文:原始的可理解的訊息或資料,是輸入-----》常用X表示 加密演算法:對銘文進行代替或變換----》E() 金鑰:也是加

Java學習筆記——自動裝箱拆箱

自動裝箱與拆箱 基本型別與引用型別的互相轉換 1. 基本型別對應的包裝類 byte    short       char      int &

《Android群英傳》學習筆記Android體系系統架構

一、Android系統架構 1.Linux核心層 Android核心系統服務依賴於Linux2.6核心,如安全性、記憶體管理、程序管理、網路協議棧和驅動模型。Linux核心也是作為硬體與軟體棧的抽象層

golang學習筆記WEB框架ECHO

ECHO是golang的一款輕量級的web框架,如同python裡的flask,非常靈活,可擴充套件性很強。 hello,ECHO! 安裝 go get github.com/labstack/echo/... 一個簡單的hello func main() {

Java學習筆記抽象類介面的應用

1、抽象類的實際應用 — 定義模板 假設有這樣的場景,將人分為工人和學生,兩者都能說話,只是說話的內容不一樣,換句話說,說話這個功能應該是一個具體功能,說話的內容由學生和工人決定,我們可以用抽象類實現這個場景 abstract class Person2{ private S

Java學習筆記引用傳遞及其應用

介紹一下java裡面三種引用傳遞 Demo 1 public class ChapterFive { public static void main(String[] args) { Demo1 d1 = new Demo1(); // 例項化Demo1物件

android學習筆記客戶端服務端保持session登入狀態

剛進公司不久,也沒有具體專案任務,只有一個混合開發模式,使用AppCan開發的專案。 雖然混合開發很便捷、很高效,使用html和js就可以完成。 但我依然對android原生開發有著極高的熱情,尤其是在體驗了Android 5.0版本之後,更是對原生體驗著迷。 所以,我利用

Golang學習筆記依賴包管理工具gvt

一、gvt概念 gvt全稱為Go vendoring tool,可譯為Go供應工具,或者意譯為Go依賴包依賴包工具,whatever~~,簡單來說就是可以方便的獲取、更新、刪除專案所依賴的工具包,這個特性在Go1.5之前並不支援,1.5版本中需要設定GO15VENDOREX

STM32學習筆記GPIO輸入輸出

        1、核心點:對於任意MCU中的外設(模組)操作方法:都是找該模組的工作框圖,根據框圖來寫程式        對於ST中的任何一個外設,都是掛載在不同的時鐘線下的,所有的時鐘線預設都是關閉的;在使用該外設之前,要開啟該外設的時鐘        步驟1 :    

Python學習筆記模塊

後綴 inf 有一個 dll _file__ .org 都是 load 我會 一、模塊 1、模塊的概念 模塊這一概念很大程度上是為了解決代碼的可重用性而出現的,其實這一概念並沒有多復雜,簡單來說不過是一個後綴為 .py 的 Python 文件而已 例如,我在某個工作中經常需