浅谈golang中的&^位清空操作
如下所示:
c=a&^b
含义:b转为二进制时,值为1的位置对应c的位置值为0;c中剩余位置值与a对应位置值相同(即:所谓的位清空操作,把b中1对应位置在c位置上清空),详见下面代码
packagemain
import"fmt"
funcmain(){
a:=12
b:=4
c:=a&^b
fmt.Printf("a:%08b\n",a)
fmt.Printf("b:%08b\n",b)
fmt.Printf("c:%#v二进制:%08b\n",c,c)
/*输出:
a:00001100
b:00000100
c:8二进制:00001000
*/
}
补充:GolangSlice删除指定的索引(下标)和slice清空等常用操作
packagemain
import(
"fmt"
)
//清空切面元素
funcCleanSlice(){
//方法一通过切片赋值方式清空
varCslice[]int=[]int{1,2,3}
fmt.Printf("清空前元素>>:\n")
fmt.Printf("len:%v\tceanslice:%v\n",len(Cslice),Cslice)
Cslice=Cslice[0:0]
fmt.Printf("清空后元素>>:\n")
fmt.Printf("len:%v\tceanslice:%v\n",len(Cslice),Cslice)
}
//删除指定的索引元素
funcDelIndex(){
varDelIndex[]int
DelIndex=make([]int,5)
DelIndex[0]=0
DelIndex[1]=1
DelIndex[2]=2
DelIndex[3]=3
DelIndex[4]=4
fmt.Println("删除指定索引(下标)前>>:")
fmt.Printf("len:%v\tDelIndex:%v\n",len(DelIndex),DelIndex)
//删除元素3索引(下标)3
index:=3
//这里通过append方法分成两个然后合并
//append(切片名,追加的元素)切片名这里我们进行切割一个新的切片DelIndex[:index]追加的元素将索引后面的元素追加
//DelIndex[index+1:]...)为什么追加会有...三个点,因为是一个切片所以需要展开
DelIndex=append(DelIndex[:index],DelIndex[index+1:]...)
fmt.Printf("len:%v\tDelIndex:%v\n",len(DelIndex),DelIndex)
}
funcmain(){
CleanSlice()
fmt.Println()
DelIndex()
}
切片的反转reverse
packagemain
import"fmt"
funcreverse1(s[]int){
fori,j:=0,len(s)-1;i
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
 