解释型语言和编译型语言

编译型:将源代码通过编译器转化为一个可以运行的包(机器码,二进制),然后在计算机上直接执行。因为机器码是计算机能够和自己理解的,所以其运行速度比解释型语言快。
    优点:运行速度快、执行效率高、可移植性强
    缺点:需要编译成机器码,开发和调试时间通常较长;程序在不同的平台上需要重新编译。
解释型:不需要编译成机器码,而是由解释器逐行执行程序代码。由于解释器需要动态翻译代码,所以其运行速度通常比编译型语言慢一些,但开发效率较高,更加易于调试和修改。
    优点:开发效率高,调试方便
    缺点:执行效率低、运行速度慢、可移植性弱;程序在不同的平台上需要重新安装依赖包。

变量和常量

常量:不会被改变的值称为常量,在程序运行时,常量不会被修改。
变量:变量是可以被更改的值,在程序运行时,可以修改变量以达到不同的运行结果。
//示例:
S = π * r²
π: 是常量
r: 是变量

Go语言中定义变量和常量

变量: var age int = 30
常量: const pi = 3.14

数据类型

整数(int):1,-1
浮点数(float): 1.1,-1.1
字符串(string): china,刘敏
布尔值(bool): true,false

Go中定义不同类型的变量

// 定义整型变量
var i int = 10

// 定义浮点数变量
var f float64 = 3.14

// 定义布尔值变量
var b bool = true

// 定义字符串变量
var s string = "Hello World"

数据结构

数组(array):数组是一组数据元素的结合,每个元素都可以使用索引进行访问。数组的长度是固定的,一旦创建不可修改其大小。
列表(list): 和数组的区别是列表可以通过添加、删除或修改元素来动态地调整大小
对象(object):对象是一种复合的数据类型,可以表示为键值对。每个键值对包含一个键(key)和一个相应的值(value),用于表示某种属性或特性。

强类型语言和弱类型语言

编程语言分为强类型语言和弱类型语言

​ 强类型:编译或运行时会更严格地检查变量的类型一致性

​ 弱类型:编译器会自动进行类型转换

运算符

算数运算符:用来执行基本的数学计算,包括加、减、乘、除和取余操作。
比较运算符:用来比较两个值之间的关系,并返回一个布尔值。包括大于、小于、大于等于、小于等于、不等于、等于等。
逻辑运算符:用来执行布尔逻辑运算,包括与、或和非操作。例如,与运算符检查多个条件是否同时为真,或运算符会检查多个条件中是否有至少一个为真,而非运算符则会反转给定条件的值。

逻辑控制

逻辑控制是一种编程思想,它使用条件语句、循环语句和函数等流程,以达到实现特定功能的目的。
简单来说,逻辑控制就是通过不同的条件来控制程序的运行流程,并做出不同的结果。
条件语句: if else; switch
循环语句: forwhile

函数

在编程中,函数是一种可重用的代码块,它封装了一系列相同的操作成为了一个独立的一部分,这个部分可以被其他地方调用。

函数作用在于将复杂的程序逻辑拆分成多个小块,使得程序结构更加清晰明了,易于维护和扩展。

函数封装原则:

​ 单一职责:每个函数应该只负责一块功能,不应该做太多的事情;
​ 可读性强:函数应该清晰易懂,遵循良好的命名规范,让其他开发人员容易理解;
​ 可重用性强:函数应该尽可能地通用,让其可以在不同的上下文中使用。

变量和函数命名规范

变量命名规范:

1.使用有意义的名称,避免使用无意义或缩写形式进行命名,要见名知义。
2.变量名应该以小写字母开头,多个单词可以用下划线分隔(例如:first_name)或者使用驼峰命名法(例如:firstName),推荐使用驼峰式。
3.避免使用保留关键字或已经定义的函数名作为变量名。

函数命名规范:

1.函数名应该描述函数的功能,使用有意义的名称,也需要是见名知义。
2.函数名同样应该以小写字母开头,并且使用驼峰命名法。
3.如果函数返回布尔值,通常在函数名前加加上is、has、can等前缀,例如isValid()、hasPermission()。
4.如果函数是一个事件处理程序,通常需要以on开头,例如:onClick()、onSubmit

代码注释规范

单行注释:

package main

// import: 用来导入一个包的
import "fmt"


func main()  {
    fmt.Println("Hello World")
}

多行注释:

/*
greet函数返回问候语
参数name: 用户名
参数age: 年龄
返回值: 字符串类型的问候语
*/
func greet(name string,age int) {
    return fmt.Sprintf("你好,%s,你今年已经%d岁了吗?",name,age)
}

注释不会被编译,每一个包应该有相关注释。
单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾

文档更新时间: 2023-11-09 14:10   作者:xtyang