英文:
efficient way to print out my format
问题
我希望有一种高效的方法来打印出我的格式。
据我所知,转换为字符串可能会导致性能问题。
有没有更好的方法?
package main
import "fmt"
type T struct {
order_no [5]byte
qty int32
}
func (t T)String() string {
return fmt.Sprint("order_no=", t.order_no,
"qty=", t.qty)
}
func main() {
v := T{[5]byte{'A','0','0','0','1'}, 100}
fmt.Println(v)
}
输出结果是 order_no=[65 48 48 48 49]qty=100
我希望它是 order_no=A0001 qty=100
。
顺便问一下,为什么 func (t T)String() string
能工作,而 func (t *T)String() string
不能工作(在 goplay 上)。
英文:
I wish there is an efficient way to print out my format.
As I know convert to string may occur performance issue.
Is there any better method?
package main
import "fmt"
type T struct {
order_no [5]byte
qty int32
}
func (t T)String() string {
return fmt.Sprint("order_no=", t.order_no,
"qty=", t.qty)
}
func main() {
v := T{[5]byte{'A','0','0','0','1'}, 100}
fmt.Println(v)
}
The output is order_no=[65 48 48 48 49]qty=100
I wish it will be order_no=A0001 qty=100
.
BTW, why func (t T)String() string
work and func (t *T)String() string
can not work.(on goplay)
答案1
得分: 1
package main
import "fmt"
type T struct {
order_no [5]byte
qty int32
}
func (t T) String() string {
return fmt.Sprint(
"order_no=", string(t.order_no[:]),
" qty=", t.qty,
)
}
func main() {
v := T{[5]byte{'A', '0', '0', '0', '1'}, 100}
fmt.Println(v)
}
英文:
package main
import "fmt"
type T struct {
order_no [5]byte
qty int32
}
func (t T) String() string {
return fmt.Sprint(
"order_no=", string(t.order_no[:]),
" qty=", t.qty,
)
}
func main() {
v := T{[5]byte{'A', '0', '0', '0', '1'}, 100}
fmt.Println(v)
}
Output:
order_no=A0001 qty=100
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论