Go学习笔记四

嵌入式三轴磁力计实践:TLV493D从I2C配置到磁场解算 在嵌入式系统中,磁场测量广泛应用于电子罗盘、姿态参考、接近检测和电流感应等场景。与传统单轴霍尔传感器相比,三轴磁力计能够同时获取空间三个正交方向的磁场分量,降低了对安装角度的敏感性。I2C作为最通用的板级通信协议,仅需两根信号线即可完成传感器数据读取,是连接MCU与磁力计的高效选择。通过解析磁阻传感器输出的数字信号,并进行符号扩展与比例换算,可将原始寄存器值转换为毫特斯拉(mT)单位的物理量。结合矢量幅值运算和方位角计算,可实现物体定位、手势识别乃至磁场异常检测等功能。本文以英飞凌TLV493D为例,讲解从 阅读详情

 

package main

import (
	"bufio"
	"fmt"
	"io/ioutil"
	"os"
	"strconv"
)

func main() {
//  sum := 0
////	不需要括号
//  for i:=1; i <= 100; i++ {
//  	 sum += i
//  }
  //fmt.Println(fors())
  //fmt.Println(converToBin(0))
	printFile()
	//readFile()

}
func fors() int {
	 var num int

	 for i := 1; i <=100 ; i++ {
	 	num += i
	 }
	 return num

}
/*
*strconv.Itoa(); 将整形转换为字符串
*/
func converToBin(m int) string{

	str := ""
	//	for 可以没有开始 结束 递增 条件 !!!
	for ; m > 0; m /= 2 {

		//最低位等于 m % 2
		lib := m % 2


		str = strconv.Itoa(lib) + str

	}
	return str
}

//小数转换为二进制
//向下取整 math.Floot  float64 需要int取整
func sm(n float64)  {
fmt.Println(n)
	//str := ""
	//
	//for ; n > 0; n *= 2 {
	//	sp := int(math.Floor(n))
	//
	//	str = strconv.Itoa(sp) + str
	//}
	//return str;
}

//一行一行读取文件内容
func printFile() {

	filename := "abc.txt"
	//打开文件
	files, err := os.Open(filename)
	scanner := bufio.NewScanner(files)

	if err !=nil {
		panic(err)
	}
	
	for scanner.Scan() {

		fmt.Println(scanner.Text())
	}
	////判断文件信息
	//if err != nil {
	//	panic(err)
	//}
	////一行一行读取文件
	//scanner := bufio.NewScanner(files)
	////循环条件为 true 可以打开  省略开始条件 递增条件
	//for scanner.Scan() {
	//	//打开内容
	//	fmt.Println(scanner.Text())
	//}
}
//读取文件内容
func readFile() {

	filename := "abc.txt"
	//ioutil.ReadFile()
	contents, err :=ioutil.ReadFile(filename)

	if err != nil {
		panic(err)
	}
	//读取字符串
	fmt.Printf("%s\n",contents)
}

strconv.Itoa();整形转换为字符串 
for 可以没有开始条件 结束条件 递增条件
convertToBin函数解析 
for (没有开始条件); n > 0 (结束条件||因为是反过来的); n /= 2(递增条件) {
   lsb := n % 2 //最低位等于
}
os.Open 打开文件 返回两个 file, err 
panic报错
scanner := bufio.NewScanner(file) 读取一行一行
scanner.Scan() 返回 true false
scanner.Text()  返回一行数据
没有while,如果for没有开始条件,没有递增条件

Unity坦克物理系统:履带驱动与力场建模实战指南 在游戏物理仿真中,履带车辆的运动建模远超传统轮式控制器的范畴。其核心在于摒弃WheelCollider的滚动幻觉,转向基于牛顿力学的力与力矩协同求解——通过主推进力场、转向力矩场和地面反作用力场三重叠加,实现对质量、摩擦、惯性及坡度阻力的真实响应。这种建模方式不仅支撑坦克爬坡、陷泥、侧倾等复杂行为,更保障了多人同步与高帧率下的物理稳定性。Physics Tank Maker 正是这一思路的工业级落地,它将PhysX底层机制与坦克动力学深度耦合,提供可调参数、事件驱动视觉反馈及标准扩展接口,成为面向严肃模拟类 阅读详情

相关推荐

Monocle2在R 4.3环境下的终极避坑指南:从安装到可视化全流程解析

本文提供了在R 4.3环境下安装和运行Monocle2的完整解决方案,重点解决了依赖包兼容性、源码修改及BEAM分析报错等关键问题。文章详细解析了从环境准备、依赖包处理、源码安装验证到从Seurat对象转换、拟时轨迹构建、高级可视化及性能优化的全流程,旨在帮助用户顺利完成单细胞拟时分析。

weixin_29206669的博客 1353

Golang学习笔记(四)——Go语言的指针

Go语言中的指针和C/C++ 中的指针用法基本相似。 指针(pointer)在Go语言中可以被拆分为两个核心概念: 类型指针,允许对这个指针类型的数据进行修改,传递数据可以直接使用指针,而无须拷贝数据,类型指针不能进行偏移和运算。 切片,由指向起始元素的原始指针、元素数量和容量组成。 受益于这样的约束和拆分,Go语言的指针类型变量即拥有指针高效访问的特点,又不会发生指针偏移,从而避免了非法修改关键性数据的问题。同时,垃圾回收也比较容易对不会发生偏移的指针进行检索和回收。 1.认识指针地址和指针类型

yushuaigee的博客 422

FSL软件安装

FSL软件安装

huang_tianyuan的博客 2630

Golang学习笔记(四):Go原始设计思想及核心特性

Golang学习笔记(三):Windows下Go Micro微服务开发环境搭建以及跨过的坑概述安装go(已安装的略过)安装Git、protoc、consul安装git(已安装的略过)安装 Protocol Buffers命令protoc安装 consul安装micro相关go模块安装micro安装protoc-gen-micro、protoc-gen-go模块创建微服务项目生成微服务项目myTes...

flydragon78的博客 2349

Linux下Linpack测试GPU和CPU性能

前面的文章已经介绍了如何搭建Linpack环境:https://blog.youkuaiyun.com/liu_feng_zi_/article/details/107429720 接下来说明如何使用 一、编写运行脚本: 新建文件:run_linpack.sh,内容如下: export HPL_DIR =/root/LHC/Linpack/hpl-2.0_FERMI_v15 export MKL_NUM_THREADS=6 export OMP_NUM_THREADS=6 export MKL_DYNAMI.

liu_feng_zi_的专栏 4633

学习记录-Simpack生成车轮不圆的几种示例

单阶、多阶和实测车轮多边形的添加教程

weixin_51965897的博客 3705

【golang学习笔记】——(四)Go语言的一些特质

简化C/C++中依赖关系,C/C++的头文件include方式,导致越来越多依赖关系使得编译庞大而繁重的工作量,构建大项目时间久,Go采用拥有严格依赖关系检查机制的包模型方式,大大提升编译构建效率,堪比脚本语言和动态语言。,同时为了能让当前的主流语言开发者能更顺手的使用Go,Go是类C语言的语法,但是同时又极大简化了这些语法的使用,使得代码更为简洁干净易读,也就是。Go是第一门完全支持UTF-8的编程语言,可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的 UTF-8 编码。

Bussy的博客 376

STM32面试知识点总结分析

通过Boot引脚设定,寻找初始地址初始化栈指针 __initial_sp指向复位程序 Reset_Hander设置异常中断 HardFault_Handler设置系统时钟 SystemInit调用C库函数 _main。

嵌入式技术开发 2513

go 遍历二维数组json_Golang学习笔记四--数组与切片

数组创建数组定义数组也准寻golang的基本定义习惯,变量类型在前,变量名在后/** 创建一个数组 */ func createArrays() { //第一种 定义数组 var arr1 [5]int //不指定数组值,默认int为0 //第二种 定义数组方式 arr2 := [3]int{1, 2, 3} //设置初始值 //可变长度的数组 ...

weixin_39756540的博客 898

课题申报书成功率提升85%!借助大模型AI精准选题、搭综述框架及提炼创新点(附实操AI提示词)

写一份高质量的课题申报书往往面临许多困难,对很多同仁来说,难就难在:选题既要新又要能落地,文献综述要结构清晰还得有观点,研究目标要写得有逻辑还不能夸大,创新点必须得新。而且就算你有思路,也卡在怎么组织语言,怎么压缩字数上。现在我们用ChatGPT等AI工具,可以帮我们从“选题策划 → 综述撰写 → 目标拆解 → 创新提炼 → 团队结构”实现申报工作的全流程,我们要做的就是设计好提示词和收集相关资料。这篇文章将会从申报工作的六个核心模块出发,并给出参考AI提示词,帮你快速提升课题申报效率。

智能AI让学术科研更容易 906

A2A 协议详解:Agent Card 的设计与实现

Agent Card 是 Agent2Agent (A2A) 协议中实现智能体发现与互操作性的核心组件。本文将深入剖析 Agent Card 的设计理念、关键字段及其在智能体生态系统中的作用。我们将通过详细的 JSON Schema 解析和 Python SDK 示例,帮助您理解如何精确地定义和发布智能体能力,为构建可发现、可协作的 AI 智能体奠定基础。当您使用a2a.Agent类初始化一个智能体时,SDK 会根据您提供的参数(nameversion等)自动构建内部的 Agent Card 表示。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1476

golang学习笔记(四)

golang学习笔记(四)reflect reflect

weixin_44627989的博客 244

【八股】JUC并发编程篇

👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。

qq_44768318的博客 551

四、Golang学习笔记:go实现冒泡排序算法和选择排序算法

Golang实现两种排序算法 文章目录Golang实现两种排序算法冒泡排序选择排序 冒泡排序 排序:将一组数据按指定顺序排序 func main(){ //排序比较的过程 // s := []int{9 8 7 6 5 4 3 2 1 0} //第一趟: 8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=len(s)-1-i i是趟数,j是交换次数 //第二趟: 7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=len(s)-1-i /.

qq_43759853的博客 197

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Golang学习笔记(四)Ginkgo测试框架

Ginkgo ,BDD Testing Framework for Go 行为驱动的go语言测试框架

ekko大可子 2835

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

GO 汇编学习笔记(四)

GO 汇编学习笔记(四) 函数中的局部变量 ​ 从Go语言函数角度讲,局部变量是函数内明确定义的变量,同时也包含函数的参数和返回值变量。但是从Go汇编角度看,局部变量是指函数运行时,在当前函数栈帧所对应的内存内的变量,不包含函数的参数和返回值(因为访问方式有差异)。函数栈帧的空间主要由函数参数和返回值、局部变量和被调用其它函数的参数和返回值空间组成。为了便于理解,我们可以将汇编函数的局部变量类比为Go语言函数中显式定义的变量,不包含参数和返回值部分。 ​ 为了便于访问局部变量,Go汇编语言引入了伪SP寄

ysf465639310的专栏 355

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【Golang学习笔记】从零开始搭建一个Web框架(四)

用Go语言从零开始搭建一个Web框架,本篇笔记主要涉及模板渲染与错误恢复(完结篇)

记录学习,感悟体会。 2561

Go爬虫学习笔记(四)

Go 是以同步的方式来处理网络 I/O 的,它会等待网络 I/O 就绪后,才继续下面的流程,这是符合开发者直觉的处理方式。Go 语言高效,是因为在同步处理的表象下,Go 运行时封装 I/O 多路复用,灵巧调度协程,实现了异步的处理,也实现了对 CPU 等资源的充分利用。‍阻塞与非阻塞IO密集型:如果程序的大多数时间花费在等待 I/O 上,这种程序就是 I/O 密集型(I/O bound)的。

成长之路 675

Go学习笔记(四)

channel 关闭导致的问题 因为向关闭的channel 中传递数据导致 panic, 代码如下: func GetToken(ctx context.Context) (t string, err error) { ctxTimeout, cancel := context.WithTimeout(context.TODO(), 500*time.Millisecond) defer cancel() var token string signal := make(chan struct{}

SECURE2的博客 297

Golang学习笔记(四)结构体

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 //将MyInt定义为int类型 type MyInt int 自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。 类型别名 类型别名规定:TypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英

m0_54797890的博客 244

[go学习笔记]四、条件和循环

## 循环 Go语言仅支持循环关键字 for ```go for i := 0; i<5; i++ ``` ### 示例 > while 条件循环 while(n<5) ```go n := 0 for n < 5 { n++ fmt.Println(n) } ``` > while 无限循环 while(true) ```go for { ... ...

zwj891129的专栏 623

go-zero学习笔记(四)

在上述代码中,api调用rpc时需要传入上下文ctx,有时候,我们需要将一些固定的值由ctx带入,而不是在请求参数中带过去,比如api版本,请求唯一ID等。如果你在写完rpc的logic层以后,想做一个简单的测试,且你电脑上也没有安装ETCD、k8s等服务注册、服务发现组件,那么此时你可以使用直连的方式。你会发现,在rpc端是无法读取到对应的数据的,也就是说这种方式是无法将值存储在ctx中传递给rpc服务端的。在rpc的配置文件中etc/demo.yaml删除关于etcd的配置。api端配置文件编写。

dg1011的博客 1153

golang 数组 最后一个_Golang学习笔记四--数组与切片

数组创建数组定义数组也准寻golang的基本定义习惯,变量类型在前,变量名在后/** 创建一个数组 */ func createArrays() { //第一种 定义数组 var arr1 [5]int //不指定数组值,默认int为0 //第二种 定义数组方式 arr2 := [3]int{1, 2, 3} //设置初始值 //可变长度的数组 ...

weixin_39914499的博客 1202

《go语言编程》学习笔记四

函数早够语言中,组成函数的有:关键字func、函数名、参数列表、返回值、函数体和返回语句。 go语言中的main就是一个函数。 如下:func main() { fmt.Println("hello world") }函数的调用在go语言中,函数在调用时采用下边的方式:import "mymath"// 假设Add被放在一个叫mymath的包中 // ... c := mymath.Ad

bcbbcc的博客 430

GoLang学习笔记之基础语法(四):函数

本文将详细介绍GO语言中的函数使用,包括函数的定义,函数的类型,匿名函数,回调函数,闭包以及递归函数的使用等。

qq_41736299的博客 696

Golang的学习笔记(四)语言表达式的求值顺序

文章摘要:Go语言的表达式求值顺序遵循特定规则。包级变量初始化采用依赖分析原则,按声明顺序逐步初始化的变量需满足"ready for initialization"条件。普通表达式遵循从左到右的求值顺序,函数参数和赋值操作均按此规则执行。switch语句采用惰性求值,匹配即停;而select语句则会预先求值所有case表达式(除channel接收表达式外)。赋值语句分两阶段:先求值操作数,再按序赋值,同步赋值操作需特别注意顺序。这些规则共同构成了Go语言严谨的表达式求值机制。

2301_80829687的博客 1044
上一篇: Go语言学习笔记三
下一篇: Go学习笔记数组切片和容器(五)
勋彰
博客等级 码龄9年 36粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值