2022-03-12

   这周接触了go,应该是早就开始了解过了,只不过这周分方向了,我后面就会和它扣在一起。短短几天把go基础学完了,自己想了想就自己发表一下对于go的看法。

首先在写法上,它与java的不同就是变量名与变量类型前后顺序不同,go是变量名在前面,当然这前后顺序并没有什么独到的特点,每个语言的开发者团队都有自己的考虑,go就是为了防止变量太多,程序员出现bug时可以更简单的找到问题所在。

在数组上,go的数组也是他的类型之一,一旦定义,数组就不能改变,所以这就很局限,所以切片就出来了,它最大的特点就是可以扩容操作,当然还有很多优势,就不列举了。指针对于学java的人就是个陌生的概念,go的指针与c语言的指针有所不同,怎么说呢,go初始化对象没有java那么简单,它往往需要更一步的操作,例如make函数,这只是一种方式,但都有指针的应用,对于引用类型的地址存取可以更准确有效的进行操作,指针的应用就是如此,而且注意他的代码有时候要好好注意,因为写的复杂容易混淆而引起bug。

go的引用类型除了切片,还有映射就是map,没什么可说的,和java的不同也没多大,就是一个存值和地址的东西,方便进行增删改查(个人理解)

go的结构体是弥补它没有类的缺陷,但这并不说明java没有结构体,只不过java比go就是小巫见大巫,go的结构体就是实现面向对象的一种方式。

go的接口注重与做了什么事,而不是是什么,就是一个方法集合的封装,而且他的接口定义以后,子接口结构体不用非要把所有的方法体都写出来也可以使用这个接口,这可比java聪明多了。go的反射主要侧重于对于值以及类型的返回操作,而且反射虽然方便,但尽量少用,弊端还是很大的,代码复杂,容易出bug。

go的并发,引入新概念协程,不同于基于堆(最小2Mb)的线程,他是基于栈(最小2kb)而且可以定义数量非常庞大的协程群,所以高并发的优势可以很容易的就看出来。

go的网络编程,我个人觉得这不仅仅限于go语言,计算机的七大层可以好好的了解,各种协议以及作用有利于理解网络的世界,当然值得一提的是go的客户端以及服务端编程以及网络联系真的很好理解,代码也不多.....

学的太粗鄙了,也有点混乱,后面写聊天室的时候好好练练。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【Android】40个较重要的题目 1、 Android的四大组件是哪些,它们的作用? 答:Activity:A...
    daoshou007阅读 619评论 0 0
  • Android性能优化:这是一份全面&详细的内存优化教程 前言 在Android开发中,性能优化策略十分重要 本文...
    daoshou007阅读 195评论 0 0
  • 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)...
    羲牧阅读 227评论 0 0
  • 第五章 心田上的百合花开 第一节 心田上的百合花开 百合刚刚诞生的时候,长得和杂草一模一样。但是,它心里知道自己并...
    5374845a71a6阅读 365评论 0 0
  • Nat Imm | 先天淋巴细胞修饰为靶向免疫治疗开辟新视角 原创榴莲不酥图灵基因 收录于话题#前沿分子生物学机制...
    图灵基因阅读 499评论 0 0