浅谈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以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。