Go語言程式透過接收Person結構體作為引數列印人員姓名和地址


在本文中,我們將深入探討實現PrintPerson函式的細節,瞭解Person結構體的結構,並執行程式以獲得所需輸出。因此,讓我們開始學習如何利用Go的功能有效地列印人員詳細資訊。在本文中,我們將探討如何建立一個Go程式,其中包含一個名為PrintPerson的函式。我們將使用兩種不同的方法:使用Println函式和使用Printf函式,並附帶示例來說明這個概念。

語法

printperson(person)

這表示一個名為printperson的函式,person是傳遞給該函式的引數。

p.name

它用於訪問變數p的name欄位。

  • p − 代表特定型別的變數。

  • name − 代表欄位名稱。

p.address

它用於訪問變數p的地址。

  • p − 代表特定型別的變數。

  • address − 代表欄位地址

演算法

  • 定義一個具有name和address欄位的Person結構體。

  • 建立PrintPerson函式,該函式接收Person結構體作為引數。

  • 在函式內部,訪問Person結構體引數的name和address欄位。

  • 使用fmt.Println或類似的列印函式列印name和address的值。

  • 透過建立Person結構體的例項並將它們傳遞給PrintPerson函式來測試程式。

  • 驗證函式是否正確列印每個Person例項的name和address值。

示例1

在這個例子中,我們首先定義了具有Name和Address欄位的Person結構體。

接下來,我們建立了PrintPerson函式,該函式接收Person結構體作為引數。在函式內部,我們使用fmt包中的Println函式來列印Person的姓名和地址。在main函式中,我們建立了一個具有姓名和地址的Person結構體例項。然後,我們呼叫PrintPerson函式,並將person例項作為引數傳遞。這將使用Println函式輸出人員的姓名和地址。

package main

import "fmt"

type Person struct {
   Name    string
   Address string
}

func PrintPerson(p Person) {
   fmt.Println("Name:", p.Name)
   fmt.Println("Address:", p.Address)
}

func main() {
   person := Person{
      Name:    "John Doe",
      Address: "123 Main Street",
   }

   PrintPerson(person)
}

輸出

Name: John Doe
Address: 123 Main Street

示例2

在這個程式碼示例中,我們定義了具有Name和Address欄位的Person結構體。

接下來,我們建立了PrintPerson函式,該函式接收Person結構體作為引數。在函式內部,我們使用fmt包中的Printf函式來格式化並列印Person的姓名和地址。%s佔位符用於指示應在何處插入相應的字串值。

package main

import "fmt"

type Person struct {
   Name    string
   Address string
}

func PrintPerson(p Person) {
   fmt.Printf("Name: %s\n", p.Name)
   fmt.Printf("Address: %s\n", p.Address)
}

func main() {
   person := Person{
      Name:    "John Doe",
      Address: "123 Main Street",
   }

   PrintPerson(person)
}

輸出

Name: John Doe
Address: 123 Main Street

結論

形成PrintPerson工作的Go語言程式代表了Go程式設計中函式的功能。透過將Person結構體作為引數傳遞,該函式有效地打印出人員的姓名和地址。這提高了程式碼的封裝性、清晰性和可重用性,從而實現簡潔有序的程式設計。將特定任務封裝在函式中的能力提高了程式碼的整體效率和實用性。透過這種方法,開發人員可以輕鬆地在Go程式中列印儲存在Person結構體中的人員詳細資訊。

更新於:2023年7月20日

218 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.