golang 援用和指针的区分_后端开发

包含 C、C++ 在内的一些言语支撑指针。其他言语包含 C++、Java、Python、Ruby、Perl 和 PHP 都支撑援用。从表面上看,援用和指针异常类似,它们都用来让一个变量供应对另一个变量的接见。 (引荐进修:go)

由于两者都供应了很多雷同的功用,所以经常不清楚它们各自的内部机制有什么差别。在本文中,我将申明指针和援用之间的区分。

为何这很主要

指针是 Go 言语的中心。大多数程序员都是在上面提到的一种言语的基础上进修 Go 的。因而,明白指针和援用之间的区分关于明白 Go 至关主要。

纵然你运用过具有指针的言语,Go 对指针的完成也差别于 C 和 C++,由于它保留了援用的一些优异属性,同时保留了指针的功用。

本文的其余部分旨在广泛地议论援用的看法,而不是细致的完成。我们将运用 Go 作为指针的参考完成。

有什么差别?

指针变量存储的是另一个变量的地点。

援用变量指向别的一个变量。

为证实我们的看法,用 C++ 举个例子,它同时支撑指针和援用。

int i = 3;2int *ptr = &i;3int &ref = i;

第一行定义了变量 i;第 2 行定义了一个指向变量 i 内存地点的指针 ptr;第 3 行定义了一个指向变量 i 的援用 ref。

不仅操作符差别,而且运用的要领也差别。关于指针,必需运用 * 操作符来解援用。关于援用,不需要任何操作符。据了解,你倾向于运用援用的变量。

继承我们的示例,下面两行代码都将把 i 的值更改成13。

ptr = 13;
ref = 13;

你可能会问,假如我尝试直接接见变量 ptr 而不运用解援用。这就引出了指针和援用之间的第二个症结区分。指针能够重分派,而援用不能。换句话说,指针能够被分派另一个差别的地点。

以上就是golang 援用和指针的区分的细致内容,更多请关注ki4网别的相干文章!

Leave A Comment