gpt4 book ai didi

c# - 为什么我们需要指针来为 Go/C 中的变量赋值而不是 C#/Java

转载 作者:IT王子 更新时间:2023-10-29 01:06:08 24 4
gpt4 key购买 nike

这实际上是一个一般性问题,但现在我正在使用 Go 和 C# 时出现了。假设我们想根据用户在 Go 中的输入分配一个变量:

func main() {
var input float64
fmt.Scan(&input)
}

很清楚为什么我们需要一个内存位置来放入我们的新值。但是为什么在 Java 或 C# 等语言中,我们没有遵循相同的逻辑:

var input = Convert.ToInt32(Console.ReadLine());
// and not &input ...

最佳答案

Java 和 C# 是高级语言,它们抽象了大部分内存管理和 C 等低级语言所需的其他特定内容。

在这种情况下,Console.ReadLine() 函数分配内存来存储控制台输入并将其复制到 input 变量。

因为这些语言有垃圾收集,分配和释放内存是自动完成的,所以框架不需要你显式地传递一个内存地址来写入,也不期望你在完成后释放内存使用它。

编辑:

请参阅@kostix 评论以获得对此答案的重大改进。

关于c# - 为什么我们需要指针来为 Go/C 中的变量赋值而不是 C#/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34517179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com