首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    聊一聊Go语言中的零值,它有什么用?

    哈喽,大家好,我是asong。今天与大家聊一聊Go语言中的零值。大学时期我是一名C语言爱好者,工作了以后感觉Go语言和C语言很像,所以选择了Go语言的工作,时不时就会把这两种语言的一些特性做个比较,今天要比较的就是零值特性。熟悉C语言的朋友知道在C语言中默认情况下不初始化局部变量。未初始化的变量可以包含任何值,其使用会导致未定义的行为;如果我们未初始局部变量,在编译时就会报警告 C4700,这个警告指示一个Bug,这个Bug可能导致程序中出现不可预测的结果或故障。而在Go语言就不会有这样的问题,Go语言的设计者吸取了在设计C语言时的一些经验,所以Go语言的零值规范如下:

    02

    15分钟带你了解虚拟内存

    这篇文章主要是想尽量直观的介绍虚拟内存的知识,而虚拟内存的知识不管作为在校学生的基础知识,面试的问题以及计算机程序本身性能的优化都有着重要的意义。而起意写这篇文章主要还是因为在python,人工智能的大浪潮下,我发现好多人对这方面真的无限趋近于不知道。我不是说懂这些基础知识比懂人工智能水平就是高,但是作为一个软件工程师,我觉得相对于调库调参,我们更应该有更牢靠的基础知识。不然很容易陷入,高深的数学不会,基础的知识也不知道的尴尬境地。毕竟从事算法核心的,没有多少人,而作为工程师,我始终觉得我们的使命是如何把这些天赋异禀,脑袋发达的人的想法,构思,算法变成真正可用的东西。而在我从业不算长的年限中遇过的人来看,这绝对不是一种很简单的能力。

    05

    深度解读《深度探索C++对象模型》之C++对象的内存布局

    在C语言中,数据和数据的处理操作(函数)是分开声明的,在语言层面并没有支持数据和函数的内在关联性,我们称之为过程式编程范式或者程序性编程范式。C++兼容了C语言,当然也支持这种编程范式。但C++更主要的特点在支持基于对象(object-based, OB)和面向对象(object-oriented, OO),OB和OO的基础是对象封装,所谓封装就是将数据和数据的操作(函数)组织在一起,在语言层面保证了数据的访问和操作的一致性,这样从代码上更能表现出数据和函数的关系。在这里先不讨论在软件工程上这几种编程范式的优劣,我们先来分析对象加上封装后的内存布局,C++相对于C语言是否需要占用更多的内存空间,如果有,那么到底增加了多少内存成本?本文接下来将对各种情形进行分析。

    02
    领券