suggestion: !bytes.Equal(curPrimary, resp.Kvs[0].Value)
695 return
696 }
697 // `exitPrimary` only triggered by updating primary
698 if curPrimary != nil && resp.Kvs[0].Value != nil && string(curPrimary) != string(resp.Kvs[0].Value) {699 mcsutils.SetExpectedPrimary(gta.member.Client(), gta.member.GetLeaderPath())
700
701 gta.member.UnsetLeader()
suggestion: !bytes.Equal(curPrimary, resp.Kvs[0].Value)
350 return
351 }
352 // `exitPrimary` only triggered by updating primary
353 if curPrimary != nil && resp.Kvs[0].Value != nil && string(curPrimary) != string(resp.Kvs[0].Value) {354 utils.SetExpectedPrimary(s.participant.Client(), s.participant.GetLeaderPath())
355
356 s.participant.UnsetLeader()
suggestion: len(member.MemberValue) == 0
99 for _, member := range entries {
100 if (newPrimary == "" && member.ServiceAddr != oldPrimary) || (newPrimary != "" && member.Name == newPrimary) {
101 primaryIDs = append(primaryIDs, member.ServiceAddr)
102 if string(member.MemberValue) == "" {103 return errors.New("member value is empty")
104 }
105 secondaryValues = append(secondaryValues, string(member.MemberValue))
Description
Conversion between string
and []byte
is not required here, and it is better
to pass the string
as copy's argument as it is without type conversing it to
[]byte
.
The builtin function copy
takes care of byte
to string
(or vice-versa)
conversion of the args passed, and hence, does not require that an explicit
conversion be done when passing the arguments. Hence, the conversion can be
omitted.
Bad practice
copy(b, []byte(s))
Recommended
copy(b, s)