JAVA学GO入门总结

golang学习笔记

  • 基础语法

    1. Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成
    2. 在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。
    3. 注释不会被编译,每一个包应该有相关注释。
      单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾
    4. 标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。
  • 基本数据类型

在这里插入图片描述

  • 运算符

    1. 算数运算符和Java一样,关系运算符,逻辑运算符也一致
    2. &(与), |(或), 和 ^(位异) (两个数不一致才显示1),<<左移运算符,左移多少位,就相当于乘以2的多少次方,>>右移运算符,相当于除以2的多少次方
    3. 赋值运算符=,可以和算数运算符,和位运算符结合使用,例如:+=,-=,<<=
    4. &变量名 :用于返回变量存储的地址 *变量名:一个指针变量
  • 变量声明

    变量声明和java有一定的区别,java中命名先进行类型的确定,而golang中先声明变量名,例如:var 变量名 变量类型,var demo int

  • 条件运算符

    1. if-else:if语句在判断时不需要加()外,和Java一样,for循环也是不需要加()外其他都和Java一致,还有注意的是在if前可以执行一个赋值语句,跟 for 一样,if 语句可以在条件之前执行一个简单的语句。由这个语句定义的变量的作用域仅在 if 范围之内 例如:

      if v := math.Pow(x, n); v < lim{}

    2. switch:和java的区别在于可以对类型进行一个判断,基本语法和Java类似,如下:

      switch var1 { case val1: ... case val2: ... default: ... }

      要注意使用 fallthrough 会强制执行后面的 case 语句,fallthrough 不会判断下一条 case 的表达式结果是否为 true。

    3. golang中是没有while循环了,可以通过for循环来进行一个取代,如下:

      for true{
         fmt.Println("aa")
      }
      
    4. select:以下描述了 select 语句的语法:

      每个 case 都必须是一个通信
      所有 channel 表达式都会被求值
      所有被发送的表达式都会被求值
      如果任意某个通信可以进行,它就执行,其他被忽略。
      如果有多个 case 都可以运行,Select 会随机公平地选出一个执行。其他不会执行。
      否则:
      如果有 default 子句,则执行该语句。
      如果没有 default 子句,select 将阻塞,直到某个通信可以运行;Go 不会重新对 channel 或值进行求值。

    5. 循环控制语句:break,continue,goto的区别。

      continue:一般用于结束本次循环接着执行下次循环

      break:break可以结合标签(lable)进行一个跳转,单独使用的话用于结束本轮循环,break和goto的区别在于,break对应的标签只能写在for循环前,goto对应的标签可以写在任意位置

  • defer关键字:

    1. defer 语句会延迟函数的执行直到上层函数返回。延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用。
    2. defer 栈:延迟的函数调用被压入一个栈中。当函数返回时, 会按照后进先出的顺序调用被延迟的函数调用
  • 结构体:

    1. 结构体类似于Java中的Javabean,可以通过type 结构体名称 struts 进行一个声明。后面可以通过一个.属性名进行一个获得和设置
  • 切片:

    1. 切片用于对数组的一个扩展,弥补了数组长度不可变的缺点,类似于java集合体系中的arraylist,不过golang切片可以直接用于存放基本数据类型,可以通过make关键字进行一个初始化
  • go接口

    1. 接口声明:type 接口名称 interface
    2. 实现接口,只要自己定义一个结构体或者一个基本数据类型变量,然后对接口中的方法进行一个重写就相当于实现,不需要像java中通过implements去显示的实现。
  • go并发

    1. go语言开启一个线程不需要像Java实现接口或者继承类,可以直接通过go关键字,就可以开启一个线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值