Go 語言程式演示類中方法的過載
本文將學習如何在類中使用不同的示例過載方法。Go 程式語言沒有類的概念,因此將使用函式過載來執行程式。這樣可以使程式碼更靈活、更易讀。例如,您可以建立一個接受介面作為引數的函式,然後用實現該介面的幾種型別來呼叫它。讓我們看看它的執行過程。
方法 1:使用自定義型別 MyInt
這裡包含兩個方法 Print() 和 PrintWithNumber(),其中可以在這些 MyInt 型別的函式中傳送值。
演算法
步驟 1 − 建立一個包 main 並宣告程式中的 fmt(格式化包)包。
步驟 2 − 為內建 int 型別建立一個唯一的別名 MyInt。
步驟 3 − 定義 MyInt 型別的兩個關聯方法 Print() 和 PrintWithNumber(number string)。
步驟 4 − 在 main() 函式中建立一個名為 val 的 MyInt 型別變數,並賦予它值 6。
步驟 5 − 使用 val 變數上的 Print() 函式列印值 6。
步驟 6 − 使用引數 "number" 呼叫 val 變數上的 PrintWithNumber(number string) 函式。這將列印數字 6 並在其後列印單詞 "number"。
步驟 7 − 使用 fmt.Println() 函式執行列印語句,其中 ln 表示換行。
示例
在本例中,我們將看到如何使用自定義型別 MyInt 在類中過載方法。
package main
import "fmt"
type MyInt int
func (val MyInt) Print() {
fmt.Println(val) //print val created in main
}
func (val MyInt) PrintWithNumber(number string) {
fmt.Println(val, number) //print both val of type MyInt and number of type string
}
func main() {
val := MyInt(6) //create val
fmt.Println("The representation of function overloading is:")
val.Print() // Output: 6
val.PrintWithNumber("number") // Output: 6 number
}
輸出
The representation of function overloading is: 6 6 number
方法:使用 MyInt 型別的介面
這裡,.. 表示 print 函式可以接受任意數量的引數。讓我們看看程式碼和演算法來了解它是如何完成的。
語法
func len(v Type) int
len() 函式用於獲取任何引數的長度。它以一個數據型別變數作為引數,我們希望找到它的長度,並返回一個整數,即變數的長度。
演算法
步驟 1 − 建立一個包 main 並宣告程式中的 fmt(格式化包)包。
步驟 2 − 為內建 int 型別建立別名 MyInt。
步驟 3 − 建立一個與 MyInt 型別關聯的方法 print,使得 print(args...interface)。這裡,… 用於接受任意數量的引數。
步驟 4 − 在下一步中,使用 print 方法內部的 if 語句檢查 args 切片的長度。
步驟 5 − 如果 args 切片的長度為零,則列印 MyInt 型別的值;如果 args 切片的長度大於零,則列印 MyInt 型別的值,後跟 args 切片。
步驟 6 − 在 main() 方法中建立一個名為 val 的 MyInt 型別變數,並賦予它值 6。
步驟 7 − 使用 fmt.Println() 函式列印 val 的值,其中 ln 表示換行。
示例
在本例中,我們將學習如何使用 MyInt 型別的介面在類中演示方法的過載。
package main
import "fmt"
type MyInt int
func (val MyInt) Print(args ...interface{}) {
if len(args) == 0 { //if the length of args slice is 0 print if statement
fmt.Println(val)
} else {
fmt.Println(val, args) //else print it
}
}
func main() {
val := MyInt(6) //create val
fmt.Println("The function overloading is represented here:")
val.Print() // Output: 6
val.Print("number") // Output: 6 [number]
}
輸出
The function overloading is represented here: 6 6 [number]
結論
我們使用兩個示例執行了方法過載程式。在第一個示例中,我們使用了自定義型別 MyInt,而在第二個示例中,我們使用了 MyInt 型別的介面。兩個程式都給出了類似的輸出。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP