Go语言的素数对象编程实现及其使用
来源:互联网 发布:珠海广电网络营业厅 编辑:程序博客网 时间:2024/05/18 07:52
有关Go语言的面向对象编程,看了几本书,看了若干例子也没有太明白。太惭愧啊!
后来看了一个例子,结合之前书上的内容,总算有点头绪了。
然而,自己的程序写出来编译后还是出来不少问题。
后来,在已有的程序的基础上,稍加改进,终于明白了一些问题。
有关Go语言的面向对象编程,编过一个之后,就不困难了,只需要注意若干细节就可以了。
Go语言与C语言、C++语言和Java语言还是有差异的,需要慢慢体会。
这里编写了一个素数对象程序,包括使用该对象的程序。虽然不是很完善,但是麻雀虽小五脏俱全,在这基础上可以演变出各种各样的面向对象的Go语言程序。这是一个样例!
Go语言程序(面向对象程序):
// myprime project myprime.gopackage myprimeimport ("math")const MAXN int = 800const PRIME_NUM int = 139type MyPrime struct {pflag [MAXN + 1]boolprime [PRIME_NUM + 1]int}func (mp *MyPrime) ESieve(n int) {mp.pflag[2] = truefor i := 3; i <= n; i += 2 {mp.pflag[i] = true}end := int(math.Sqrt(float64(n)))for i := 3; i <= end; i += 2 {step := i + iif mp.pflag[i] {j := i + stepfor j <= n {mp.pflag[j] = falsej += step}}}j := 2mp.prime[0] = 1mp.prime[1] = 2for i := 3; i <= n; i += 2 {if mp.pflag[i] {mp.prime[j] = ij++}}}func (mp *MyPrime) Init() {mp.ESieve(MAXN)}func (mp *MyPrime) GetPrime(n int) int {return mp.prime[n]}func (mp *MyPrime) GetPrimeNum() int {return PRIME_NUM}
Go语言主程序(使用对象的程序):
// mytest project main.gopackage mainimport ("fmt""myprime")func main() {mp := new(myprime.MyPrime)mp.Init()for i := 1; i <= mp.GetPrimeNum(); i++ {fmt.Printf("%d: %d\n", i, mp.GetPrime(i))}}
程序运行结果:
1: 22: 33: 54: 75: 116: 137: 178: 199: 2310: 2911: 3112: 3713: 4114: 4315: 4716: 5317: 5918: 6119: 6720: 7121: 7322: 7923: 8324: 8925: 9726: 10127: 10328: 10729: 10930: 11331: 12732: 13133: 13734: 13935: 14936: 15137: 15738: 16339: 16740: 17341: 17942: 18143: 19144: 19345: 19746: 19947: 21148: 22349: 22750: 22951: 23352: 23953: 24154: 25155: 25756: 26357: 26958: 27159: 27760: 28161: 28362: 29363: 30764: 31165: 31366: 31767: 33168: 33769: 34770: 34971: 35372: 35973: 36774: 37375: 37976: 38377: 38978: 39779: 40180: 40981: 41982: 42183: 43184: 43385: 43986: 44387: 44988: 45789: 46190: 46391: 46792: 47993: 48794: 49195: 49996: 50397: 50998: 52199: 523100: 541101: 547102: 557103: 563104: 569105: 571106: 577107: 587108: 593109: 599110: 601111: 607112: 613113: 617114: 619115: 631116: 641117: 643118: 647119: 653120: 659121: 661122: 673123: 677124: 683125: 691126: 701127: 709128: 719129: 727130: 733131: 739132: 743133: 751134: 757135: 761136: 769137: 773138: 787139: 797
程序说明:
1.需要创建一个包项目,包名为myprime
2.需要定义一个结构,结构名为MyPrime,对象的变量放在结构体中
3.定义若干方法,似乎方法名需要以大写字符开头
4.主程序中的对象变量,照猫画虎即可("mp := new(myprime.MyPrime)"),需要用new
5.有了对象,就可以调用方法了
6.其他与面向对象编程类似
阅读全文
0 0
- Go语言的素数对象编程实现及其使用
- Go语言实现的素数筛选程序
- Go语言面向对象编程
- go语言产生素数
- Go logo Google的编程语言 Go
- go语言的面向对象
- Go语言与面向对象编程
- GO语言面向对象编程之方法
- Go语言使用组合的方式实现多继承
- 使用Go语言实现http服务端指定路径的文件.
- 使用Go语言实现简单的Get请求
- 许式伟《Go语言编程》样章“面向对象编程”
- 许式伟《Go语言编程》样章“面向对象编程”
- 许式伟《Go语言编程》样章“面向对象编程”
- Go语言编程(十)之面向对象编程
- Go语言反射的使用
- go语言:flag的使用
- Go语言defer的使用
- 风力摆控制系统赛题分析
- 学习java第一天
- LVS系列—LVS-DR 模式安装
- 增删查改的业务逻辑
- hdu2090 算菜价(C语言)
- Go语言的素数对象编程实现及其使用
- MySQL删除视图
- Fragment 生命周期
- 奇怪的非同寻常的金币
- flowable ContentEngine和ContentEngineConfiguration的关系
- n个数中y数字出现了几次
- 机器学习自学网址
- 这个超时了的对程序(1到n中y数字出现了几次)
- Verilog数组初始化赋值