code: func (group *NodeGroup) Next() (node Node, err error) {
  	if group == nil {
  		return
  	}
  
  	group.mux.RLock()
  	defer group.mux.RUnlock()
  
  	selector := group.selector
  	if selector == nil {
  		selector = &defaultSelector{}
  	}
  
  	// select node from node group
  	node, err = selector.Select(group.nodes, group.selectorOptions...)
  	if err != nil {
  		return
  	}
  
  	return
  }
docs: // Next selects a node from group.
  // It also selects IP if the IP list exists.