英文:
Using a struct to pass multiple values GO
问题
我只返回翻译好的部分,以下是翻译的内容:
我只有一个问题
我在这里写了一个例子
package main
import (
"fmt"
)
type PACK struct {
d, r int
}
func main() {
st := &PACK{}
st.d, st.r = f(12, 32)
}
func f(a, b int) (d int, r int) {
d = a / b
r = a ^ b
return
}
所以,问题是 - 我如何做到像这样
st := &PACK{ f(1,2) }
我希望我的函数返回的参数可以作为结构体的初始化器!
英文:
I have just one question
I wrote an example here
package main
import (
"fmt"
)
type PACK struct {
d, r int
}
func main() {
st := &PACK{}
st.d, st.r = f(12, 32)
}
func f(a, b int) (d int, r int) {
d = a / b
r = a ^ b
return
}
So, the question is - how can i make thing like this
st := &PACK{ f(1,2) }
I want my function return arguments to be a struct initializer!
答案1
得分: 1
你不能这样做,这是不可能的。
英文:
You cannot do this, it is not possible.
答案2
得分: 0
你可以在结构体Pack
上创建一个方法,用于初始化其值。例如:
package main
import "fmt"
type Pack struct {
d, r int
}
func (p *Pack) init(a, b int) {
p.d = a / b
p.r = a ^ b
}
func main() {
pack := Pack{} // 这里的d和r被初始化为0
pack.init(10, 4)
fmt.Println(pack)
}
结果为:
{2 14}
英文:
You can create a method on struct Pack, that will initialize the values. For example:
package main
import "fmt"
type Pack struct {
d, r int
}
func (p *Pack) init (a, b int) {
p.d = a / b
p.r = a ^ b
}
func main() {
pack := Pack{} // d and r are initialized to 0 here
pack.init(10, 4)
fmt.Println(pack)
}
Result:
{2 14}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论