登录
首页 >  Golang >  Go问答

Golang 打印不需要的值

来源:stackoverflow

时间:2024-04-03 14:15:35 154浏览 收藏

一分耕耘,一分收获!既然都打开这篇《Golang 打印不需要的值》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我是 golang 新手,正在尝试编写这个程序 -

程序应该写成循环。在进入循环之前,程序应创建一个大小(长度)为 3 的空整数切片。在每次循环期间,程序都会提示用户输入要添加到切片中的整数。该程序将整数添加到切片,对切片进行排序,并按排序顺序打印切片的内容。切片的大小必须增大以容纳用户决定输入的任意数量的整数。仅当用户输入字符“x”而不是整数时,程序才应退出(退出循环)。

所以我的代码是 -

package main

import (
    "fmt"
    "sort"
    "strconv"
)

func main() {
    myslice := make([]int, 3)
    var input string

    for i := 0; i < len(myslice); i++ {
        fmt.println("please enter a number")
        fmt.scanln(&input)
        if input == "x" {
            break
        }

        myslice_var, err := strconv.atoi(input)
        if err != nil {
            fmt.println("wrong input")
            continue
        }

        // myslice[i] = myslice_var
        myslice = append(myslice, myslice_var)
        // myslice[i] = myslice_var

        sort.ints(myslice)
        fmt.println(myslice)

    }

}

如果我先输入 4,然后输入 5,然后输入 1,它将打印出我

Please enter a number
4
[0 0 0 4]
Please enter a number
5
[0 0 0 4 5]
Please enter a number
1
[0 0 0 1 4 5]

看起来打印和排序都正常,但是如何去掉前三个“0”? 谢谢!


解决方案


希望这是您想要的打印方式! (迭代切片,并仅打印非零值),试试这个!

package main

import (
        "fmt"
        "sort"
        "strconv"
)

func main() {
        mySlice := make([]int, 3)
        var input string

        for i := 0; i < len(mySlice); i++ {
                fmt.Println("Please enter a number")
                fmt.Scanln(&input)
                if input == "X" {
                        break
                }

                mySlice_var, err := strconv.Atoi(input)
                if err != nil {
                        fmt.Println("Wrong input")
                        continue
                }

                // mySlice[i] = mySlice_var
                mySlice = append(mySlice, mySlice_var)
                // mySlice[i] = mySlice_var

                sort.Ints(mySlice)
//              fmt.Println(mySlice)
//Iterating Over Slice , and printed only non zero values
                for _,v := range mySlice{
                        if v != 0 {
                                fmt.Printf("%v",v)
                        }
                }
                fmt.Println("")

        }

}

以上就是《Golang 打印不需要的值》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>