登录
首页 >  Golang >  Go问答

基本类型和自定义类型转换对性能的影响

来源:stackoverflow

时间:2024-02-08 16:06:24 323浏览 收藏

本篇文章给大家分享《基本类型和自定义类型转换对性能的影响》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

从基础到自定义(或自定义到基础)的类型转换会对性能产生负面影响吗?

简单且常见的场景。

我有一个包 b,仅出于语法原因,我使用了一些自定义类型,例如:

package b

type mystringtype string
type myint64type int64
type myinttype int64


var stringvar mystringtype
var int64var myint64type 
var intvar myinttype

stringvar = "hello"
int64var = 10
intvar = 20

现在,我必须在我的包 a 中使用来自包 b 的数据,我需要在其中比较变量,但需要进行类型转换(显然):

package A

import "project/B"

var string_var string
var int64_var int64
var int_var int

string_var = "hi"
int64_var = 100
int_var = 1000


//base to custom

if B.MyStringType(string_var) == B.StringVar {
    fmt.Println("Equal")
}

if B.MyInt64Type(int64_var) == B.Int64Var {
    fmt.Println("Equal")
}

if B.MyIntType(int_var) == B.IntVar{
    fmt.Println("Equal")
}



//custom to base

if string(B.StringVar) == string_var {
    fmt.Println("Equal")
}

if int64(B.Int64Var) == int64_var {
    fmt.Println("Equal")
}

if int(B.IntVar) == int_var {
    fmt.Println("Equal")
}

问题:当大量使用时,例如数千次迭代,这种类型转换会对性能产生一些影响吗?

谢谢


正确答案


在同一类型的名称之间进行转换时,不会对运行时产生影响。这完全是一个编译时功能,在运行时不会产生额外的指令。

终于介绍完啦!小伙伴们,这篇关于《基本类型和自定义类型转换对性能的影响》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>