【建站服务】诸暨网站建设_企业网站制作公司_高端网站设计开发-诸暨上往-域名申请
作者: 风兰 . 阅读量: 8 . 发表时间:2022-09-21 05:52:51
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
诸暨网站建设_企业网站制作公司_高端网站设计开发-诸暨上往

ge mainimport ( "fmt")type HashMap struct { key string value string hashCode int next *HashMap}var table [16](*HashMap)func initTable() { for i := range table{ table[i] = &HashMap{"","",i,nil} }}func getInstance() [16](*HashMap){ if(table[0] == nil){ initTable() } return table}func genHashCode(k string) int{ if len(k) == 0{ return 0 } var hashCode int = 0 var lastIndex int = len(k) - 1 for i := range k { if i == lastIndex { hashCode += int(k[i]) break } hashCode += (hashCode + int(k[i]))*31 } return hashCode}func indexTable(hashCode int) int{ return hashCode%16}func indexNode(hashCode int) int { return hashCode>>4}func put(k string, v string) string { var hashCode = genHashCode(k) var thisNode = HashMap{k,v,hashCode,nil} var tableIndex = indexTable(hashCode) var nodeIndex = indexNode(hashCode) var headPtr [16](*HashMap) = getInstance() var headNode = headPtr[tableIndex] if (*headNode).key == "" { *headNode = thisNode
return "" } var lastNode *HashMap = headNode
var nextNode *HashMap = (*headNode).next for nextNode != nil && (indexNode((*nextNode).hashCode) < nodeIndex){ lastNode = nextNode
nextNode = (*nextNode).next } if (*lastNode).hashCode == thisNode.hashCode { var oldValue string = lastNode.value
lastNode.value = thisNode.value
return oldValue
} if lastNode.hashCode < thisNode.hashCode { lastNode.next = &thisNode
} if nextNode != nil { thisNode.next = nextNode
} return ""}func get(k string) string { var hashCode = genHashCode(k) var tableIndex = indexTable(hashCode) var headPtr [16](*HashMap) = getInstance() var node *HashMap = headPtr[tableIndex] if (*node).key == k{ return (*node).value
} for (*node).next != nil { if k == (*node).key { return (*node).value
} node = (*node).next } return ""}Go 语言递归函数
递归,就是在运行的过程中调用自己。
语法格式如下:
func recursion() {
recursion() /* 函数调用自身 */
}
func main() {
recursion()
}
Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。
递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。
阶乘
以下实例通过 Go 语言的递归函数实例阶乘:
实例
package main
import "fmt"
func Factorial(n uint64)(result uint64) {
if (n > 0) {
result = n * Factorial(n-1)
return result
}
return 1
}
func main() {
var i int = 15
fmt.Printf("%d 的阶乘是 %d ", i, Factorial(uint64(i)))
}
以上实例执行输出结果为:
15 的阶乘是 1307674368000
斐波那契数列
以下实例通过 Go 语言的递归函数实现斐波那契数列:
实例
package main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
诸暨网站建设_企业网站制作公司_高端网站设计开发-诸暨上往
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站


