Golang:转换函数

huangapple go评论83阅读模式
英文:

Golang: convertor function

问题

我们有一个结构S。是否有可能创建一个转换器,使得表达式

s := S(a_string)

能够编译通过,其中a_string实际上是一个字符串。

英文:

We have some structure S. Is it possible to make a converter so that the expression

s := S(a_string) 

began to compile, where a_string is actually a string.

答案1

得分: 1

允许的转换在规范:转换中列出。有一个名为“转换为和从字符串类型”的部分。只有这些转换是允许的,你不能“扩展”或更改转换的行为。

然而,你可以始终编写一个接受string并返回类型为S的值的函数。

func Parse(s string) S {
    var r S
    // 解析逻辑
    return r
}

使用它与转换的方式相同:

s := Parse(a_string)
英文:

The allowed conversions are listed in Spec: Conversions. There's a section for "Conversions to and from a string type". Only those are allowed, you can't "extend" or change the behavior of conversions.

You may however always write a function that takes a string and returns a value of type S.

func Parse(s string) S {
    var r S
    // Parsing logic
    return r
}

Using it is / looks like the same as a conversion:

s := Parse(a_string)

huangapple
  • 本文由 发表于 2022年8月20日 15:11:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/73424754.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定