Golang自定義類型與類型別名

type myInt int32type myInt = int32,概念并不相同

  1. 自定義類型:type myInt int32

    通過這種方式定義的類型是一個全新的類型,這個新類型與int32有相同的底層結構,但是卻與int32類型不兼容。

    type myInt int32
    
    var a int32 = 5
    var b myInt = a  // 這里會產生編譯錯誤
    

    盡管myInt的底層類型是int32,但它們在類型系統中是不同的。

  2. 類型別名:type myInt = int32

    類型別名則是給現有類型起一個新的名字,新的名字與原始類型在類型系統中是完全相同的。

    type myInt = int32
    
    var a int32 = 5
    var b myInt = a  // 這里不會產生編譯錯誤
    

    這里myIntint32的別名,所以不會產生任何編譯錯誤。

  3. 總結

    • 自定義類型會創建一個全新的類型,與原始類型在類型系統中是不兼容的。

    • 類型別名則只是給現有類型起一個新名字,與原始類型在類型系統中完全相同。

    • 自定義類型可用于封裝或抽象,而類型別名則可以用來確保向后兼容或簡化類型名稱。

    通過了解這些區別,可以更靈活地使用Go語言的類型系統來滿足各種編程需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36337.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36337.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36337.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

雙色球彩票系統---(java實現)

雙色球彩票系統:需求:投注號碼由6個紅色號碼和1個藍色球號碼組成。紅色球號碼從1-33中選擇,藍色球號碼從1-16當中選擇 * 紅 藍 * 一等獎 6 1 * 二等獎 6 0 * 三等獎 5 1 * 四等獎 5 0 * 4 1 * 五等獎 4 0 * …

Blazor簡單教程(1.1):Razor基礎語法

文章目錄 前言基本文件配置引入Layout組件 語法介紹pagecodeRazor 語法[ 顯式表達和隱式表達](https://learn.microsoft.com/zh-cn/aspnet/core/mvc/views/razor?viewaspnetcore-7.0#explicit-razor-expressions) 綁定簡單綁定雙向綁定帶參數的函數綁定 依賴注入 前言 Blazor…

synchronized使用

目錄 問題描述 1 鎖方法 2 鎖代碼塊 3 鎖某個類 4 靜態方法上的synchronized 當我們處理多線程處理同步問題的時候就會用到synchronized這個關鍵字,下面介紹下synchronized的四種用法。 問題描述 介紹之前我們先來看下,在java 多線程中 如果沒有線…

leetcode1. 兩數之和

題目:leetcode1. 兩數之和 描述: 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那 兩個 整數,并返回它們的數組下標。 你可以假設每種輸入只會對應一個答案。但是,數組中…

QT:UI控件(按設計師界面導航界面排序)

基礎部分 創建新項目:QWidget,QMainWindow,QDialog QMainWindow繼承自QWidget,多了菜單欄; QDialog繼承自QWidget,多了對話框 QMainWindow 菜單欄和工具欄: Bar: 菜單欄:QMenuBar&#xff0…

A Survey for In-context Learning

A Survey for In-context Learning 摘要: 隨著大語言模型(LLMs)能力的增長,上下文學習(ICL)已經成為一個NLP新的范式,因為LLMs僅基于幾個訓練樣本讓內容本身增強。現在已經成為一個新的趨勢去探索ICL來評價和extrapolate LLMs的能力。在這篇…

微服務06-分布式事務解決方案Seata

1、Seata 概述 Seata事務管理中有三個重要的角色: TC (Transaction Coordinator) - **事務協調者:**維護全局和分支事務的狀態,協調全局事務提交或回滾。 TM (Transaction Manager) - **事務管理器:**定義全局事務的范圍、開始全局事務、提交或回滾全局事務。 RM (Resourc…

Java地圖專題課 基本API BMapGLLib 地圖找房案例 MongoDB

本課程基于百度地圖技術,由基礎入門開始到應用實戰,適合零基礎入門學習。將企業項目中地圖相關常見應用場景的落地實戰,包括有地圖找房、輕騎小程序、金運物流等。同時講了基于Netty實現高性能的web服務,來處理高并發的問題。還講…

ttf-dejavu fontconfig字體

ttf-dejavu fontconfig是驗證碼,pdf,excel時需要用到的字體 編輯dockerfile,先切換國內鏡像源,默認alpinelinux是國外源,下載包會很慢 vim Dockerfile FROM alpine:latest RUN sed -i s/dl-cdn.alpinelinux.org/mirr…

【創建型設計模式】C#設計模式之原型模式

原型模式是一種創建型設計模式,它通過復制現有對象來創建新對象,而無需通過實例化的方式。它允許我們使用已經存在的對象作為藍本,從而創建新的對象,這樣可以避免重復初始化相似的對象,提高了對象的創建效率。 現在給…

Sentinel

1、熔斷降級限流 熔斷 A服務調用B服務的某個功能,由于網絡不穩定、B服務卡機等問題,導致功能時間超長。如果這樣子的次數太多,我們就可以直接將B斷路(A不再請求B接口),凡是調用B服務的直接返回降級數據&a…

13-數據結構-串以及KMP算法,next數組

串 目錄 串 一、串: 二、串的存儲結構: 三、模式匹配 1.簡單模式匹配(BF算法) 2.KMP算法 2.1-next(j)數組手工求解 2.2-nextval(j)數組手工求解 一、串: 內容受…

JVM垃圾回收篇-垃圾回收算法

JVM垃圾回收篇-垃圾回收算法 標記清除(Mark Sweep) 概念 collector指的就是垃圾收集器。 mutator是指除了垃圾收集器之外的部分,比如說我們的應用程序本身。 mutator的職責一般是NEW(分配內存)、READ(從內存中讀取內容)、WRITE(將內容寫入內…

將多個單獨的 Excel 文件合并成一個,并添加標題行

要將多個單獨的 Excel 文件合并成一個,并添加標題行,可以使用 Python 的 pandas 庫。以下是一個示例代碼,假設要合并的 Excel 文件都在同一個文件夾中: import os import pandas as pd # 指定文件夾路徑 folder_path path/to/fo…

vscode搭建c語言環境問題

c語言環境搭建參考文章:【C語言初級階段學習1】使用vscode運行C語言,vscode配置環境超詳細過程(包括安裝vscode和MinGW-W64安裝及后續配置使用的詳細過程,vscode用戶代碼片段的使用)[考研專用]_QAQshift的博客-CSDN博客 問題如下:…

[C++ 網絡協議] 套接字和地址族、數據序列

目錄 1. 套接字 1.1 在Linux平臺下構建套接字 1.1.1 用于接聽的套接字(服務器端套接字) 1.1.2 用于發送請求的套接字(客戶端套接字) 1.2 在Windows平臺下構建套接字 1.2.1 Winsock的初始化 1.2.2 用于接聽的套接字(服務器端套接字) 1.2.3 用于發送請求的套接字(客戶端套…

pytest框架快速進階篇-pytest前置和pytest后置,skipif跳過用例

一、Pytest的前置和后置方法 1.Pytest可以集成unittest實現前置和后置 importunittestimportpytestclassTestCase(unittest.TestCase):defsetUp(self)->None:print(unittest每個用例前置)deftearDown(self)->None:print(unittest每個用例后置)classmethoddefsetUpClass…

jmeter中用戶參數和用戶定義的變量的區別

如果使用jmeter做過參數化的人都知道,參數化的方式有多種,其中一種就是使用用戶定義的變量,還有一種是使用用戶參數。那么,這兩個有什么異同呢? 一、先說相同的點: 1、都可以參數化,以供sample…

allure測試報告

使用pytest結合Allure進行測試報告生成的簡單教程 allure測試報告 Allure基于Java開發,因此我們需要提前安裝Java 8或以上版本的環境。 ◆安裝allure-pytest插件在DOS窗口輸入命令“pip3 install allure-pytest”,然后按“Enter”鍵。 下載安裝Allure…

使用 Docker 部署 canal 服務實現MySQL和ES實時同步

文章目錄 0. 環境介紹0. 前置步驟1. 安裝Kibana和Elasticsearch2. 安裝Canal和Canal Adapter2.1 修改數據庫配置2.1.1 修改配置2.1.2 驗證mysql binlog配置2.1.3 查看日志文件2.1.4 用JDBC代碼插入數據庫 2.2 安裝Canal Server2.3 安裝Canal Adapter修改兩處配置文件配置文件取…