类型

变量

定义

关键字var定义变量,类型放在变量名后

var x int //自动初始化为0
var y=false //自动推断为bool类型

  

可一次定义多个变量,包括用不同初始值定义不同类型

var x,y int //相同类型的多个变量
var a,s = 100,"abc" //不同类型初始化值

  

依照惯例,建议组方式整理多行变量定义

var (
	x,y int
	a,s = 100,"abc"
)

  

简短模式

	x := 100
	a, s := 100, "abc"

  限制

  • 不能提供数据类型
  • 只能用在函数内部
package main

import (
	"fmt"
)

var x = 100

func main() {
	fmt.Println(&x, x) //全局变量
	x := "abc" //重新定义 赋值局部变量    
	fmt.Println(&x, x)
}

  

简短模式并不总是重新定义变量,也可能是部分退化的赋值操作

package main

import (
	"fmt"
)

func main() {
	x := 100
	fmt.Println(&x, x)
	x, y := 200, "abc"
	fmt.Println(&x, x, y)
}

  

输出

0xc04204e080 100
0xc04204e080 200 abc

  

退化赋值的前提条件是至少一个变量被定义,必须同一作用域;不同作用域,全是新变量定义

package main

import (
	"fmt"
)

func main() {
	x := 100
	fmt.Println(&x, x)
	{
		x, y := 200, "abc"
		fmt.Println(&x, x, y)
	}

}

  

输出结果两内存地址不一样

退化赋值的应用场景:在处理函数返回值时,重复定义err

package main

import (
	"os"
	"fmt"
)

func main() {
	f,err := os.Open("/root/test")
	b := make([]bytes,1024)
	n,err := f.Read(b)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(n)
}

  

命名

变量首字母大小写决定了其作用域,首字母大写为导出成员,可被外包调用,小写仅能在包内使用

空标识符

‘_’ 特殊成员,通常作为忽略占位符使用,表达式左值,无法读取内容

 

常量

常量表示运行时恒定不可改变的值,通常是一些字面量;常量值必须是编译期可确定的字符、字符串、数字或布尔值,可指定常量类型

const (
	a, b int    = 10, 20
	s    string = "hello"
)

  

枚举

go没有明确意义的enum定义,不过可以通过iota标识符实现一组自增常量值来实现枚举类型

const (
	a = iota  // 0
	b           // 1     
	c           // 2
)    

  

基本类型

 

 别名


在官方的语言规范中,专门提到两个别名

byte  alias for uint8

rune  alias for int32

package main

import (
	"fmt"
)

func test(x byte) {
	fmt.Println(x)
}

func main() {
	var a byte = 0x11
	var b uint8 = a
	var c uint8 = a + b
	test(c)
} 

  

引用类型

 

特指slice、map、slice这三种预定义类型,使用make函数创建(new也能为引用类型分配内存,但是不完整创建,字典为例,仅分配字典类型本身所需内存,没有分配键值存储内存)

 

转载于:https://www.cnblogs.com/hongpeng0209/p/9199360.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值