• 注册
当前位置:1313e > 默认分类 >正文

隐藏的数据类型-引用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

汇编语言中,引用就是内存的地址,是一个数字类型。

C 语言中,引用是通过指针实现的,而其类型是和其指向的类型有关的一种类型。

在函数式语言中,没有显式的引用,函数的参数默认是传递值,无法传递引用,这在并发类语言中尤其明确。而这样设计的初衷是为了防止程序员不小心修改了共享的变量,而造成并发行为发生不可预料的后果。

我认为,引用应当作为一种独立的类型,分离出来。即使是支持并发的语言,也不要强制禁止传递引用,禁止对值的修改,因为这是程序员的权利。

ref = *valueref_value = &ref

为了避免影响编译器对内存的调度,引用不能当成一种数字类型,也不能和引用所指向的类型相关。 type(ref) == 'ref'

引用可以复制,可以作为参数传递,在对引用计算的时候,会自动解引用,

other_ref = refaccept_ref_function(ref_var)ref_var.type() // equal &ref_var.type();

而函数的参数传递,传递的是值,而不是引用。如果想传递引用,就显式的定义:

var_ref = *varaccept_ref_func(var_ref)

语言设计应当尽可能的把潜规则显式的表达出来。

转载于:https://my.oschina.net/u/563463/blog/618090

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录