-
16李柏霖学习笔记/2026.3.28.md
-
206李柏霖学习笔记/3.30.md
-
BIN李柏霖学习笔记/images/021099bd151272c630107ed552ab7af2.png
-
BIN李柏霖学习笔记/images/QQ20260330-143952.png
-
BIN李柏霖学习笔记/images/image-20260328093542705.png
-
BIN李柏霖学习笔记/images/image-20260328093613551.png
-
BIN李柏霖学习笔记/images/image-20260328112106933.png
-
BIN李柏霖学习笔记/images/image-20260328135132711.png
-
BIN李柏霖学习笔记/images/image-20260328135416809.png
@ -0,0 +1,206 @@ |
|||
# go语言 |
|||
|
|||
## 执行流程 |
|||
|
|||
 |
|||
|
|||
Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错 |
|||
|
|||
## 转义字符 |
|||
|
|||
\t:制表符 |
|||
|
|||
\n:换行 |
|||
|
|||
**\\"**:一个" |
|||
|
|||
\r:回车 |
|||
|
|||
fmt包提供格式化,输出,输入函数。 |
|||
|
|||
## 基本语法 |
|||
|
|||
使用gofmt进行格式化 |
|||
|
|||
**(1)** |
|||
|
|||
所有的Go文件以package 开头,对于独立运行的执行文件必须是package main; |
|||
|
|||
fmt.Printf("Hello, world; or 世界") 这是说需要将fmt包加入main。不是main的其他包都被称为库,其他许多编程语言有 着类似的概念。 |
|||
|
|||
package main 必须首先出现,紧跟着是import。 |
|||
|
|||
在 Go 中,package 总是首先出现, 然后是import,然后是其他所有内容。当Go程序在执行的时候,首先调用的函数 是main.main(),这是从C中继承而来。这里定义了这个函数; |
|||
|
|||
Go 同其他语言不同的地方在于变量的类型在变量名的后面。不是:int a,而是a int。 当定义了一个变量,它默认赋值为其类型的null值。这意味着,在var a int后,a的 值为0。而var s string,意味着s被赋值为零长度字符串,也就是""。 |
|||
|
|||
**(2)** |
|||
|
|||
var a int |
|||
|
|||
var b bool |
|||
|
|||
a = 15 |
|||
|
|||
b = false |
|||
|
|||
------ |
|||
|
|||
用:= 声明 |
|||
|
|||
a := 15 |
|||
|
|||
b := false |
|||
|
|||
在左边使用了关键字var声明变量,然后赋值给它。右边的代码使用了:= 使得在一 步内完成了声明和赋值(这一形式只可用在函数内)。在这种情况下,变量的类型是由 值推演出来的。值15表示是int类型,值false告诉Go它的类型应当是bool。多 个var声明可以成组;const和import同样允许这么做。留意圆括号的使用: var ( x int b |
|||
|
|||
### Go 语言的字符串连接可以通过 **+** 实现: |
|||
|
|||
```go |
|||
package main |
|||
import "fmt" |
|||
func main() { |
|||
fmt.Println("Google" + "Runoob") |
|||
} |
|||
``` |
|||
|
|||
``` |
|||
GoogleRunoob |
|||
``` |
|||
|
|||
Go 语言中使用 **fmt.Sprintf** 或 **fmt.Printf** 格式化字符串并赋值给新串: |
|||
|
|||
- **Sprintf** 根据格式化参数生成格式化的字符串并返回该字符串。 |
|||
- **Printf** 根据格式化参数生成格式化的字符串并写入标准输出。 |
|||
|
|||
| **概念** | **Java 对应** | **Go 派生类型** | |
|||
| -------------- | ---------------- | ------------------------ | |
|||
| **对象属性** | Class (Fields) | **Struct** | |
|||
| **动态列表** | ArrayList | **Slice** | |
|||
| **键值对** | HashMap | **Map** | |
|||
| **抽象定义** | Interface | **Interface** (隐式实现) | |
|||
| **内存操作** | 引用 (Reference) | **Pointer** (显式指针) | |
|||
| **多线程通信** | BlockingQueue | **Channel** | |
|||
|
|||
声明变量的一般形式是使用 var 关键字: |
|||
|
|||
```go |
|||
var identifier type |
|||
``` |
|||
|
|||
可以一次声明多个变量: |
|||
|
|||
```go |
|||
var identifier1, identifier2 type |
|||
``` |
|||
|
|||
### 变量声明 |
|||
|
|||
**第一种,指定变量类型,如果没有初始化,则变量默认为零值**。 |
|||
|
|||
``` |
|||
var v_name v_type |
|||
v_name = value |
|||
``` |
|||
|
|||
bool 零值为 false |
|||
|
|||
没有初始化就为零值 |
|||
|
|||
**第二种,根据值自行判定变量类型。** |
|||
|
|||
``` |
|||
var v_name = value |
|||
``` |
|||
|
|||
**第三种,如果变量已经使用 var 声明过了,再使用 \**:=\** 声明变量,就产生编译错误,格式:** |
|||
|
|||
``` |
|||
v_name := value |
|||
``` |
|||
|
|||
例如: |
|||
|
|||
``` |
|||
var intVal int |
|||
intVal :=1 // 这时候会产生编译错误,因为 intVal 已经声明,不需要重新声明 |
|||
``` |
|||
|
|||
直接使用下面的语句即可: |
|||
|
|||
``` |
|||
intVal := 1 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句 |
|||
``` |
|||
|
|||
**intVal := 1** 相等于: |
|||
|
|||
``` |
|||
var intVal int |
|||
intVal =1 |
|||
``` |
|||
|
|||
``` |
|||
//类型相同多个变量, 非全局变量 |
|||
var vname1, vname2, vname3 type |
|||
vname1, vname2, vname3 = v1, v2, v3 |
|||
``` |
|||
|
|||
**所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值:** |
|||
|
|||
可以通过 &i 来获取变量 i 的内存地址 |
|||
|
|||
一个引用类型的变量 r1 存储的是 r1 的值所在的内存地址(数字),或内存地址中第一个字所在的位置。 |
|||
|
|||
 |
|||
|
|||
这个内存地址称之为指针,这个指针实际上也被存在另外的某一个值中。 |
|||
|
|||
变量的初始化时省略变量的类型而由系统自动推断,声明语句写上 var 关键字其实是显得有些多余了,因此我们可以将它们简写为 a := 50 或 b := false。 |
|||
|
|||
### go的常量 |
|||
|
|||
- 显式类型定义: `const b string = "abc"` |
|||
- 隐式类型定义: `const b = "abc"` |
|||
|
|||
#### iota,特殊常量,可以认为是一个可以被编译器修改的常量。 |
|||
|
|||
iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。 |
|||
|
|||
iota 可以被用作枚举值 |
|||
|
|||
**`iota` 只能读,不能写**:永远不要写 `iota = x` 或 `iota += 1`,这是 Go 语法严格禁止的。 |
|||
|
|||
**`const` 块内类型一致**:同一组 `const` 里,要么全是数字,要么全是字符串,不能混用。 |
|||
|
|||
Go 语言支持的位运算符如下表所示。假定 A 为60,B 为13: |
|||
|
|||
| 运算符 | 描述 | 实例 | |
|||
| :----- | :----------------------------------------------------------- | :------------------------------------- | |
|||
| & | 按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。 | (A & B) 结果为 12, 二进制为 0000 1100 | |
|||
| \| | 按位或运算符"\|"是双目运算符。 其功能是参与运算的两数各对应的二进位相或 | (A \| B) 结果为 61, 二进制为 0011 1101 | |
|||
| ^ | 按位异或运算符"^"是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 | (A ^ B) 结果为 49, 二进制为 0011 0001 | |
|||
| << | 左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | A << 2 结果为 240 ,二进制为 1111 0000 | |
|||
| >> | 右移运算符">>"是双目运算符。右移n位就是除以2的n次方。 其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。 | A >> 2 结果为 15 ,二进制为 0000 1111 | |
|||
|
|||
# 夺宝奇兵之时空预测: |
|||
|
|||
AI时空共振: |
|||
|
|||
股价不可能一直涨或者跌,时间决定了一切,空间决定了你的收益到底有多大 |
|||
|
|||
AI时空共振功能 |
|||
• 追踪股价运行背后的超级临界点,预判转折位置。 |
|||
• 适用于所有股票,结合时间和空间分析。 |
|||
• 以英伟达为例展示功能,识别连续上涨后的临界点。 |
|||
|
|||
未来预测技术 |
|||
• 包含股价预测和时空预测两大内容。 |
|||
• 提前标注变盘点,如距离下个变盘点5或13个交易日。 |
|||
• 通过案例验证预测准确性,如高低点与实际走势吻合。 |
|||
• 结合高阶数据科学与AI技术,逐步完善预测模型。 |
|||
|
|||
高低点规律总结 |
|||
• 高点提前易暴跌,低点提前易暴涨。 |
|||
• 高点延后易续涨,低点延后易续跌。 |
|||
• 牛市中低点易提前,高点易延后。 |
|||
• 熊市中高点易提前,低点易延后。 |
|||
|
After Width: 501 | Height: 381 | Size: 85 KiB |
|
After Width: 838 | Height: 645 | Size: 202 KiB |
|
After Width: 1252 | Height: 593 | Size: 171 KiB |
|
After Width: 1239 | Height: 595 | Size: 175 KiB |
|
After Width: 739 | Height: 454 | Size: 134 KiB |
|
After Width: 921 | Height: 635 | Size: 304 KiB |
|
After Width: 517 | Height: 406 | Size: 104 KiB |