首先来我讲一下go语言
Go(又称 Golang)
是一种开源的编程语言,由 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年末开始设计,并于 2009 年 11 月正式开源。Go 的设计目标是让开发者能够轻松构建简单、可靠且高效的软件。Go 语言以其简洁性和高性能而闻名,尤其适用于构建高并发和分布式系统。它在 2012 年发布了第一个稳定版本 Go 1,并拥有一个活跃的开源社区
包的定义
package main 写在代码的第一行,表示这份代码是要运行的程序,而不是代码包(写给别人用的
导入包
单个 import “包名”
多个 import(
“包1”
“包2”
)
一行导入一个包,导入的包后面必须要使用,不然会报错,使用方法 包名.方法()
变量的定义
分类: int, string ,bool ,float64,float32
定义分为两种——第一种是在函数的外面,此时定义变量必须 var 变量名 类型 = 值 或者 var 变量名 = 值 (让系统去猜你的变量类型———第二种是在函数里面,此时不用加var,其余不变
小tip:=表示初次定义并赋值变量,后续更改变量的值只需要=即可 :=0 表示变量类型为整数 :=0.0表示类型为浮点数
var和:=不能同时用
函数与结构体构建
结构体
Go 语言中的结构体(struct)是一种用户自定义的复合数据类型,用于组合不同类型的数据字段,类似于轻量级的类。
type 结构体名称 struct {变量名称 类型 //多个变量写在同一行需要用;隔开,不同行的话则不需要,同一类型的变量可以用逗号隔开}
func 函数名 (需要的参数1,参数2 参数类型)(返回值的类型){return 返回值}
调用此函数时 可以直接调用 函数名(输入的参数)
func(结构体简写 结构体)函数名(需要的参数1,参数2 参数类型)(返回值的类型){return 返回值}
调用此函数时,首先得 创建一个结构体对象 对象名 :=结构体名(按顺序填入变量的值,用逗号隔开)
变量名1,变量名2:=对象名.函数名(输入的参数1,参数2)表示用变量1 2来接受返回值
基础语法
for循环for 变量名 := 值 ;条件判断 ;变量变化 {}
switch
switch 变量{
case 变量的值1:
反应1
case 变量的值2 :
反应2
default:
反应3
}
if
if 条件{}
自我检测
- 定义一个 Team 结构体(ID、Name、Score),写一个方法计算总分
- 变式 如果有多个分数呢
- 写一个函数,接收一个整数切片,返回最大值和错误(如果切片为空)
重点讲一下错误处理方法以及数的切片
错误处理方法
首先得导入 errors包
其次函数定义中要返回error类型的变量
然后在函数中,return errors.New(”“)表示有错误,没错误则return nil 表示null
最后在运行的程序中,用err接受error的返回值,
这是常见的写法
数的切片
切片名 []类型
传入数时需要[]切片类型{}在打括号中统一传递增
然后我再来讲c语言
C语言
是一门兼具高级语言与低级语言特性的通用编程语言,既能进行底层硬件操作,又具备良好的可移植性和高效性。它提供了丰富的数据类型、运算符、指针机制以及结构化的程序设计方式,是系统软件、嵌入式开发和高性能应用的核心语言之一。
导入包
#include<stdio.h>这是输入和输出必备的包
其它补充的包
- stdio.h——标准输入输出
- stdlib.h——内存管理与分配、随机数、字符串转换
- string.h——字符串处理
- math.h——数学
- time.h——时间和日期
- ctype.h——字符处理
- stdbool.h——布尔类型
- errno.h——错误处理
- float.h——浮点数类型限定和属性
- limits.h——各种类型变量的最值
程序入口
int main(){}
变量的定义
格式 变量类型 变量名 =值;
变量类型 int double char
输入输出
输入
int x; scan(”%d“,&x)表示输入一个值传给x,&表示找到x的地址,&d整数的格式化占位符,还有%s 字符串占位符 %c 单字符占位符 %f 浮点数占位符
输出
printf(”中文说明&变量类型1,中文说明&变量类型2“,变量1,变量2)
基本语法
ifif(条件判断){} else{}
forfor(变量定义;条件判断;变量变化){}
whilewhile(条件判断){}
数组数组类型 数组名[数组长度]={}或者”“
指针
intp = &a; // 第一次:声明 p 是指针 + 初始化,是"声明"的一部分
(等效于
int *p; // 第一步:造出纸条 p —— * 只是出厂标签,表明"这是张指针纸条"
p = &a; // 第二步:把 a 的门牌号写上去 —— 真正"存入"的是这一半
)
p = &a; // 之后重新指向:不带星号,直接把地址存进 p
*p = 5; // 只有"往 p 指向的房间里放东西"时才用 *
printf(”&d“,*p)表示打印a的值
int *p; // p 是张空白纸条,上面是随机垃圾值
p = 5; // 按一个随机门牌号进屋 → 崩溃或悄悄改坏别的数据,这里的表示地址对应的值
scanf(“%d”, x); // 错:把 x 的"值"当门牌号用了
scanf(“%d”, &x); // 对:把 x 的"门牌号"递过去