首頁  >  文章  >  後端開發  >  golang 結構是否有擴充運算符

golang 結構是否有擴充運算符

PHPz
PHPz轉載
2024-02-09 12:36:19394瀏覽

golang 结构是否有扩展运算符

php小編西瓜在本文中將探討一個關於Golang語言的問題:是否存在結構的延伸運算子。 Golang作為一種現代化的程式語言,擁有許多強大的特性和功能,但是在一些特定的場景下,開發人員可能會遇到需要對結構進行擴展的需求。本文將詳細介紹Golang中結構擴展的相關知識,並給予解。如果你對Golang的結構擴展運算子感興趣,那麼請繼續閱讀這篇文章。

問題內容

具有以下結構,其中 postinputcreatepost 函數的參數。

type postinput struct {
  title string
  content string
}

type postinputwithtime struct {
 title string
 content string
 createdat time
 updatedat time
}

但不希望 createdatupdatedat 暴露給用戶,所以我將其添加到函數中,如下所示。

func createpost(input postinput) {
  updatedinput = postinputwithtime{
    title: input.title
    content: input.content
    createdat: time.now()
    updatedat: time.now()
  }
  db.insertone(updatedinput)
}

它工作正常,但很好奇是否有更優雅的方法來做到這一點?我知道可以將結構嵌入到另一個結構上,但不能嵌入到根層上(如 javascript 擴充運算子)。

// something like this
type PostInputWithTime struct {
 ...PostInput
 CreatedAt
 UpdatedAt
}

解決方法

是否有像 javascript 擴充運算子 [...] 一樣的 go[...] 結構 [...] 擴充運算子?

沒有。

(您必須使用嵌入、複製值或實現一些基於反射的魔法,但不,沒有傳播。)

以上是golang 結構是否有擴充運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除