首页 > 编程语言 >【Go实战基础】数组实战,程序员的基本功

【Go实战基础】数组实战,程序员的基本功

时间:2022-08-23 09:22:38浏览次数:86  
标签:实战 arr 程序员 g002 偶数 go 数组 Go

 数组实战,程序员的基本功。

实战需求:

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

实战思路:

1、先声明两个数组,分别用于存储奇数和偶数,

2、然后遍历待排序的数组,根据是否可以被 2 整除,将数据分发到偶数和奇数数组,

3、最后将偶数数组追加到奇数数组之后作为新的数组返回。

马上安排!

一、工程目录

cd go-002/

二、创建 g002.go

/*
 * @Author: 菜鸟实战
 * @FilePath: /go110/go-002/g002.go
 * @Description: 数组实战,程序员的基本功
 */

package main

import (
	"fmt"
	"runtime"
)

// 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,
// 使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
func formatArrayV1(arr []int) []int {
	// 声明两个数组
	var oddArr, evenArr []int

	// 区分奇数和偶数
	for _, value := range arr {
		if value%2 == 0 {
			evenArr = append(evenArr, value)
		} else {
			oddArr = append(oddArr, value)
		}
	}

	// 拼接
	return append(oddArr, evenArr...)
}

// 主函数
func main() {
	// 使用内置函数打印
	println("Hello", "菜鸟实战")

	// 待排序数组
	arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

	fmt.Println("排序前:", arr)
	fmt.Println("排序后:", formatArrayV1(arr))

	// 使用包函数打印
	fmt.Printf("版本: %s \n", runtime.Version())
}

三、编译和运行

1、编译运行

# 1、生成模块依赖
go mod init g002

# 2、编译
go build g002.go 

# 3、编译后的目录结构

└── go-002
    ├── g002
    ├── g002.go
    └── go.mod

# 4、运行
go run g002

2、运行结果

Hello 菜鸟实战
排序前: [0 1 2 3 4 5 6 7 8 9]
排序后: [1 3 5 7 9 0 2 4 6 8]
版本: go1.17.10 

菜鸟实战,持续学习!

标签:实战,arr,程序员,g002,偶数,go,数组,Go
From: https://www.cnblogs.com/actions365/p/16614956.html

相关文章

  • go语言并发-02channel
    go语言通道channel如果说goroutine是Go语言程序的并发体的话,那么channels就是它们之间的通信机制。一个channels是一个通信机制,它可以让一个goroutine通过它给......
  • mongodb4.4 Aggregation
    如果需要进行数据分析,那么可以使用MongoDB的聚合框架,可以对一个或多个集合中的文档进行分析。聚合框架基于管道的概念。使用聚合管道可以从MongoDB集合获取输入,并将该集......
  • [Google] LeetCode 1610 Maximum Number of Visible Points 极角排序
    Youaregivenanarraypoints,anintegerangle,andyourlocation,wherelocation=[posx,posy]andpoints[i]=[xi,yi]bothdenoteintegralcoordinateson......
  • 慎用django orm的update_or_create方法
    根据错误日志,发现产生死锁的有4个接口。这4个接口中,阅读业务代码,发现均有使用update_or_create。为什么update_or_create方法会造成死锁呢?通过阅读源码   发现,upd......
  • beego commentsRouter.go不能自动生成
    beego2.0开始使用注解路由,然而请求一直404发现是少了routers/commentsRouter.go官方文档https://beego.vip/docs/mvc/controller/router.md但并未说明还可以通过......
  • 彩虹女神跃长空,Go语言进阶之Go语言高性能Web框架Iris项目实战-模板与数据库EP02
    书接上回,上次我们搭建好了项目入口文件,同时配置了路由体系,接着就可以配置项目的模板了,这里我们采用Iris内置的模板引擎,事实上,采用模板引擎并不意味着前后端耦合,模板中的数......
  • SkyWalking-go2sky收集Golang运行时指标技术方案
    需求理解本次项目,是将go2sky作为agent,在用户的代码中导入,并借助go2sky收集golangruntimemetrics,并将metrics上报到skywalking-OAP,skywalking-OAP提供对应的UI进行展示......
  • 浏览器数据库IndexedDB和前端多线程webWorker在3D场景中的实战应用
    背景1.IndexedDB就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。2.在3D场景中模型数据很大,有可能存在数十万级的数据存储,大量数据存储在内存中会很容易导致内......
  • [Node.js] mongoose schema
    Example1:importmongoosefrom'mongoose'constitemSchema=newmongoose.Schema({name:{type:String,required:true,trim:true,......
  • MongoDb 设置ID为整数自增序列
    MongoDb默认_id为自动生成12字节唯一标识如图所示若想要_id为整数自增序列参照以下教程https://www.runoob.com/mongodb/mongodb-autoincrement-sequence.html其......