zoukankan      html  css  js  c++  java
  • golang零碎(一)

    今天看了下labrpc模块,学习了相关的golang语法。总结下

    map

    interface{},空的可以表示任何类型,类似java的object

    struct

    new 初始化零值

    make map slice channel

    func MakeNetwork() *Network {
    	rn := &Network{}
    	rn.reliable = true
    	rn.ends = map[interface{}]*ClientEnd{}
    	rn.enabled = map[interface{}]bool{}
    	rn.servers = map[interface{}]*Server{}
    	rn.connections = map[interface{}](interface{}){}
    	return rn
    }
    上面的函数指定了很多初始化方法
    func (rn *Network) ReadEndnameInfo(endname interface{}) (bool, interface{}, *Server, bool) {
    	rn.mu.Lock()
    	defer rn.mu.Unlock()
    
    	enabled := rn.enabled[endname]
    	servername := rn.connections[endname]
    	var server *Server
    	if servername != nil {
    		server = rn.servers[servername]
    	}
    	reliable := rn.reliable
    	return enabled, servername, server, reliable
    }
    

     interface{}表示任何类型

    func (rn *Network) IsServerDead(endname interface{}, servername interface{}, server *Server) bool {
    	rn.mu.Lock()
    	defer rn.mu.Unlock()
    
    	if rn.enabled[endname] == false || rn.servers[servername] != server {
    		return true
    	}
    	return false
    }
    定义struct的方法
  • 相关阅读:
    如何在SpringMVC中使用REST风格的url
    c#实现的udt
    数据库查询服务化-缓存和分页
    c#常用数据库封装再次升级
    c#数据库连接池Hikari重构升级
    c# 常用数据库封装
    聊聊数据存储查询
    c#分析SQL语句
    c# 分析SQL语句中的表操作
    c#最近博文结尾
  • 原文地址:https://www.cnblogs.com/cane/p/5602118.html
Copyright © 2011-2022 走看看