【Golang 面試題】每日 3 題(六)

?個人博客:Pandaconda-CSDN博客
📣專欄地址:http://t.csdnimg.cn/UWz06
📚專欄簡介:在這個專欄中,我將會分享 Golang 面試中常見的面試題給大家~
??如果有收獲的話,歡迎點贊👍收藏📁,您的支持就是我創作的最大動力💪

16. Printf(),Sprintf(),FprintF() 都是格式化輸出,有什么不同?

在 Go 語言中,Printf()、Sprintf() 和 FprintF() 都是用于格式化輸出的函數,但它們有一些不同之處,具體如下:

  1. Printf()

Printf() 是最常用的格式化輸出函數,它將格式化后的字符串輸出到標準輸出流(一般是終端窗口)。Printf() 的
語法如下:

Printf(format string, a ...interface{}) (n int, err error)

其中,format 表示要輸出的格式化字符串,a …interface{} 表示要格式化的參數列表,可以是任意類型的參數。
Printf() 函數會根據格式化字符串中的格式說明符將參數格式化為指定格式,并輸出到標準輸出流中。

  1. Sprintf()

Sprintf() 與 Printf() 的作用類似,不同的是,它將格式化后的字符串輸出到一個字符串中,而不是標準輸出流。Sprintf() 的語法如下:

Sprintf(format string, a ...interface{}) string

其中,format 和 a …interface{} 的含義與 Printf() 相同,但 Sprintf() 返回一個字符串,而不是將格式化后的字符串輸出到標準輸出流中。

  1. FprintF()

FprintF() 與 Printf() 的作用也類似,不同的是,它將格式化后的字符串輸出到指定的文件中,而不是標準輸出流。FprintF() 的語法如下:

FprintF(w io.Writer, format string, a ...interface{}) (n int, err error)

其中,w 表示要輸出的文件,可以是 os.Stdout、os.Stderr 或其他實現了 io.Writer 接口的類型。format 和 a …interface{} 的含義與 Printf() 相同。FprintF() 會將格式化后的字符串輸出到指定的文件中。

綜上所述,Printf()、Sprintf() 和 FprintF() 都是格式化輸出函數,它們的作用有所不同,但都可以通過格式說明符將參數格式化為指定格式。需要根據具體的需求選擇不同的函數來使用。

17. Golang 的參數傳遞、引用類型

在 Golang 中,函數調用時參數傳遞可以分為值傳遞和引用傳遞。

值傳遞:將參數的值復制一份,然后將復制的值傳遞給函數,函數對參數的修改不會影響到原始的值。常見的值類型如 int、float、bool 等都是值類型,它們的傳遞都是值傳遞。

引用傳遞:將參數的地址復制一份,然后將復制的地址傳遞給函數,函數對參數的修改會影響到原始的值。常見的引用類型如 Slice、Map、Channel、指針等都是引用類型,它們的傳遞都是引用傳遞。

需要注意的是,在 Golang 中數組雖然是引用類型,但是它的傳遞卻是值傳遞。這是因為 Golang 的數組長度是固定的,數組的值復制時會將整個數組的元素都復制一遍,因此傳遞數組時的開銷較大,而且數組的長度也不可變,因此將數組的地址復制一份也無法修改原數組的長度,所以 Golang 采用了值傳遞的方式。

總之,對于值類型的參數,使用值傳遞即可;對于引用類型的參數,使用引用傳遞可以避免大量數據的復制,提高程序的效率。同時,在使用引用類型的參數時,需要注意并發訪問的問題。

18. Go 語言當中值傳遞如何運用?

值傳遞是指函數參數傳遞時,傳遞的是值的拷貝,而不是原始值的引用。在函數中修改參數的值并不會影響原始值。在 Go 語言中,基本數據類型、數組和結構體等類型都是以值的形式傳遞的。

示例代碼:

func main() {a := 10fmt.Println("Before calling function, a is:", a)changeValue(a)fmt.Println("After calling function, a is:", a)
}func changeValue(n int) {n = 20fmt.Println("In function, n is:", n)
}

輸出結果:

Before calling function, a is: 10
In function, n is: 20
After calling function, a is: 10

可以看到,雖然在函數 changeValue() 中修改了參數 n 的值,但原始值 a 并未被修改。

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

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

相關文章

SQL Server數據庫多主模式解決方案

SQL Server 本身并不直接支持多主模式(Multi-Master Replication),即多個數據庫實例可以同時進行寫操作,并且這些更改會自動同步到其他實例。不過,SQL Server 提供了多種高可用性和復制解決方案,可以實現類似多主模式的功能。以下是幾種常見的方法: 1. Always On 可用性…

連鎖餐飲行業數據可視化分析方案

引言 隨著連鎖餐飲行業的迅速發展,市場競爭日益激烈。企業需要更加精準地把握運營狀況、消費者需求和市場趨勢,以制定科學合理的決策,提升競爭力和盈利能力。可視化數據分析可以幫助連鎖餐飲企業整合多源數據,通過直觀、動態的可…

Zookeeper JavaAPI操作(Curator API常用操作)

構建項目 zk版本:3.5.7,引入4.0.0的curator版本,Curator依賴的版本只能比zookeeper依賴的版本高。 Curator簡單介紹 Curator是Netflix公司開源的一套zookeeper客戶端框架,解決了很多Zookeeper客戶端非常底層的細節開發工作&…

可搜索的下拉選擇框:filterable屬性詳解

在前端開發中,下拉選擇框(Dropdown Select)是一個常見的UI組件,它允許用戶從一組預定義的選項中選擇一個或多個值。然而,當選項數量較多時,手動查找特定的選項可能會變得繁瑣。為了解決這個問題&#xff0c…

精選9個自動化任務的Python腳本精選

大家好,我是老鄧,今天我們來一起學習如何用Python進行一些常見的自動化操作,涉及文件處理、網絡交互等實用技巧。即使你沒有任何Python基礎也沒關系,我會用最通俗易懂的語言來講解。 1. 對目錄中的文件進行排序 import osdef so…

滑動窗口 + 算法復習

維護一個滿足條件的窗口大小&#xff0c;然后進行雙指針移動 1.最長子串 題目鏈接&#xff1a;1.最長子串 - 藍橋云課 #include<bits/stdc.h> #define int long long using namespace std; string s; int k; signed main() {int max_len0,left0;cin>>s>>k;…

PDF書籍《手寫調用鏈監控APM系統-Java版》第9章 插件與鏈路的結合:Mysql插件實現

本人閱讀了 Skywalking 的大部分核心代碼&#xff0c;也了解了相關的文獻&#xff0c;對此深有感悟&#xff0c;特此借助巨人的思想自己手動用JAVA語言實現了一個 “調用鏈監控APM” 系統。本書采用邊講解實現原理邊編寫代碼的方式&#xff0c;看本書時一定要跟著敲代碼。 作者…

關于Vue的子組件改變父組件傳來的值

一、組件直接傳值 大家都知道父子組件傳值的方案&#xff0c;有以下幾個&#xff0c;不再詳細敖述 Props&#xff1a;父組件向子組件傳遞數據 $emit&#xff1a;子組件通過自定義事件向父組件傳遞數據 .sync修飾符&#xff1a;一個方便且強大的工具&#xff0c;可以簡化父子組…

Flink的Watermark水位線詳解

一、Flink的時間語義 Flink有如下三種時間語義&#xff1a; Flink的三種時間語義-CSDN博客 在實際應用中&#xff0c;一般會采用事件時間語義。而正如前面所說的&#xff0c;事件時間語義需要等窗口的數據全部到齊了&#xff0c;才能進行窗口計算。那么&#xff0c;什么時候數…

ES學習Promise對象(九)

這里寫目錄標題 一、概念二、示例基本使用使用 Promise 對象封裝Ajaxthen() 方法catch() 方法 一、概念 簡單說就是一個容器&#xff0c;里面保存著某個未來才會結束的事件&#xff08;通常是一個異步操作&#xff09;的結果。Promise 是一個對象&#xff0c;Promise 提供統一…

Kibana:LINUX_X86_64 和 DEB_X86_64兩種可選下載方式的區別

最近需要在vm&#xff08;操作系統是 Ubuntu 22.04.4 LTS&#xff0c;代號 Jammy。這是一個基于 x86_64 架構的 Linux 發行版&#xff09;上安裝一個7.17.8版本的Kibana&#xff0c;并且不采用docker方式。 在下載的時候發現有以下兩個選項&#xff0c;分別是 LINUX_X86_64 和 …

CMake 構建項目并整理頭文件和庫文件

本文將介紹如何使用 CMake 構建項目、編譯生成庫文件&#xff0c;并將頭文件和庫文件整理到統一的目錄中以便在其他項目中使用。 1. 項目結構 假設我們正在構建一個名為 rttr 的開源庫&#xff0c;初始的項目結構如下&#xff1a; D:\WorkCode\Demo\rttr-master\|- src\ …

【FAQ】HarmonyOS SDK 閉源開放能力 — Vision Kit(2)

1.問題描述&#xff1a; 人臉活體檢測返回上一頁App由沉浸式變為非沉浸式多了上下安全區域。 解決方案&#xff1a; 檢測結束后需要自己去設置沉浸式配置。 2.問題描述&#xff1a; Vision Kit文字識別是本地識別&#xff0c;還是上傳至服務器&#xff0c;由服務器來識別文…

AIA - IMSIC之二(附IMSIC處理流程圖)

本文屬于《 RISC-V指令集基礎系列教程》之一,歡迎查看其它文章。 1 ???????通過IMSIC接收外部中斷的CSR 軟件通過《AIA - 新增的CSR》描述的CSR來訪問IMSIC。 machine level 的 CSR 與 IMSIC 的 machine level interrupt file 可相互互動;而 supervisor level 的 CSR…

Vue單頁應用的配置

前面通過幾篇文章了解并掌握了 Vue 項目構建及運行的前期工作 。接下來我們可以走進 Vue 項目的內部&#xff0c;一探其內部配置的基本構成。 1. 路由配置 由于 Vue 這類型的框架都是以一個或多個單頁構成&#xff0c;在單頁內部跳轉并不會重新渲染 HTML 文件&#xff0c;其路…

CocosCreator-引擎案例-TS:spine

工程1&#xff1a;LoadSpine&#xff1a;簡單加載spine資源 建立工程&#xff0c;在層級上建立一個空對象&#xff0c;改名spine 在spine上添加spine組件&#xff1a; 添加組件>渲染組件>spine 在spine上掛上腳本loadspine onLoad () {cc.resources.load(loadSpine/ali…

使用FreeNAS軟件部署ISCSI的SAN架構存儲(IP-SAN)練習題

一&#xff0c;實驗用到工具分別為&#xff1a; VMware虛擬機&#xff0c;安裝教程&#xff1a;VMware Workstation Pro 17 安裝圖文教程 FreeNAS系統&#xff0c;安裝教程&#xff1a;FreeNAS-11.2-U4.1安裝教程2024&#xff08;圖文教程&#xff09; 二&#xff0c;新建虛…

【ANGULAR網站開發】初始環境搭建

1. 初始化angular項目 1.1 創建angular項目 需要安裝npm和nodejs&#xff0c;這邊不在重新安裝 直接安裝最新版本的angular npm install -g angular/cli安裝指定大版本的angular npm install -g angular/cli181.2 啟動angular 使用idea啟動 控制臺啟動 ng serve啟動成功…

lua debug相關方法詳解

lua debug相關方法詳解 1. debug.debug()2. debug.getinfo(func | level [, what])3. debug.getlocal(func-or-level, localindex)4. debug.setlocal(level, local_number, value)5. debug.getupvalue(func, upvalue_index)6. debug.setupvalue(func, upvalue_index, value)7. …

《計算機網絡(第7版)-謝希仁》期末考試復習題和答案(總結整理)

目錄 前言&#xff1a; 一、選擇題。 二、填空題。 三、名詞解釋。 四、簡答題。 前言&#xff1a; 這個自動標題自己帶了序號&#xff0c;一開始想全部選項和題號都改過來的&#xff0c;結果一看一百多個全是&#xff0c;懶得改了 一、選擇題。 1、廣域網覆蓋的地理范圍…