Golang基础知识学习-切片(与Java的对比)

Golang里面的切片,很像Java中的ArrayList,可以实现数组的动态扩缩容

创建

// Java的ArrayList定义
List<String> list = new ArrayList<String>();
// Java数组定义
String[] arrayRefVar = new String[5];

// go
slice := make([]string, 5)

Java中是通过new创建一个ArrayList,Go中是通过make来创建,这边就是语法上的不同。

赋值

在语法上趋近与数组的编写形式,而不像ArrayList的语法那么重量级。但是GO语言的数组[]号在类型的前面,这个是Java开发语言的同学所不适应的。

初始化赋值

// Java数组赋值
String[] str = {"Red","Blue"};

// GO切片赋值
str := []string{"Red","Blue"}

可以看到

直接赋值

// Java
int[] b = new int[3];
b[0] = 100;

//GO
b := make([]int,3)
b[0] = 100

是不是跟Java的数组赋值差不多,GO语法中位置好多都是跟Java中相反的。

增加元素

// Java
String[] strs = new String[4];
        strs[0] = "1";
        strs[1] = "2";
        strs[2] = "3";
        strs[3] = "4";

        List<String> list = new ArrayList<>(Arrays.asList(strs));
        List<String> newList = list.subList(1,3);
        System.out.println(newList.toString());
        list.add("5");
        System.out.println(list.toString());


//GO
	strs := make([]string,4)
	strs[0] = "1";
	strs[1] = "2";
	strs[2] = "3";
	strs[3] = "4";

	newStrs := strs[1:3]
	t.Log(newStrs)

   // 额外赋值的话
	strs = append(strs,"5")
	t.Log(strs)

这段代码的意思是创建一个动态数组,可以看到Go的语法要比Java要简洁的多。

遍历

// Java

    String[] strs = {"1","2","3","4"};
    List<String> list = new ArrayList<>(Arrays.asList(strs));
        for(String str : list){
            System.out.println(str);
        }

    System.out.println("---------------");

        for(int i=0;i<list.size();i++){                                            System.out.println("index="+i+",value="+list.get(i));
        }


// GO
	strs := []string{"1","2","3","4"}
	for index, value := range strs{
		fmt.Printf( "index=%d, value=%s\n", index, value)
	}

	for index:=0;index<len(strs);index++{
		fmt.Printf( "index=%d, value=%s\n", index, strs[index])
	}

GO语言for后面不用大括号,剩下的写法基本上一样。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值