go pkg

fmt

Scanln用来读取输入数据

示例:

package main                                                                                                                          

import (
    "fmt"
    "os"
    "time"
)

func main() {
    out := os.Stdout
    var d0, d1, d2, d3 string

    for {
        //要读取完整的一行数据, 空格分隔的每个串被一次写入到参数中, 第一个返回值是读取的参数数目,第二个返回值是错误信息
        nd, err := fmt.Scanln(&d0, &d1, &d2, &d3)
        if err == nil && nd != 0 {
            fmt.Fprintf(out, "d0:%s d1:%s d2:%s d3:%s", d0, d1, d2, d3)
            fmt.Fprintf(out, "len:%d\n", len(d3))
            fmt.Fprintf(out, "num:%d\n", nd)
        } else {
            fmt.Fprintf(out, "num:%d err:%v\n", nd, err)
        }
        time.Sleep(time.Second)
    }
}

输出:

#1,如果输入的参数个数为3个a aa aaa输出:
nd:3 err:unexpected newline
#2,如果输入的参数个数为4个a aa aaa aaaa输出:
d0:a d1:aa d2:aaa d3:aaaalen:4
num:4
#3,如果输入的参数个数为5个a aa aaa aaaa aaaaa
输出:
num:4 err:expected newline
num:1 err:unexpected newline

fmt.Fprintf(out)可以用fmt.Println()替代

时间: 2024-11-06 15:19:31

go pkg的相关文章

Mac下删除安装的pkg

Mac下的安装和删除都比windows更加简单清晰,这点在dmg方式下非常明显,但很多时候我们会使用pkg来进行安装,这样的安装想删除就有点麻烦了. 比如,我安装了Golang这个pkg用于go语言的编译,安装后确实可以使用,但安装的是一个工具链,并不是一个应用软件.所以在Application目录下是没有内容的,你可以查到安装在/usr/local/go这个目录下,但是否所有的内容都安装在这个目录下呢?我删除这个pkg的目的是为了用源码直接编译出工具链来应用,如果还有其他一些配置文件遗漏,可能

关于MAC的pkg和mpkg的分别

程序制作完毕后,在mac下通常的方法是要制作一个pkg的安装包,可是你会发现pkg和mpkg的文件出现的比較多,笔者也是经过了一定的试验和尝试,才了解到,pkg是单个文件的pkg,而mpkg事实上是多个pkg的含义,即multi pkg的含义. 那么制作pkg的方法,在这里也做一个介绍,非常多人对于packagemaker的使用望而生畏,事实上越是简单的东西,越要仔细的研究一番.好了,废话不多说,具体介绍例如以下: 1.package maker的第一个截图 2.直接拖动两个文件,到conten

mac中如何卸载pkg包

一.问题背景 在mac中,安装程序有dmg和pkg两种形式.对于dmg,直接在应用程序中删除即可,但是pkg包却没有如此方便.需要通过命令行进行删除. Mac OS X 10.9.2 二.解决方案 1.打开"应用程序"->"实用工具(Utilities)"->"终端(Terminal)". 2.使用"pkgutil --pkgs"命令,列出安装了的pkg包. com.apple.pkg.IncompatibleKe

Mac App Store应用签名和pkg签名(必须签名后才能销售)

App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是使用codesign命令行进行手动签名.这里我们采用的是使用手动codesign对app进行签名. codesign -s “your Application Certificates”app_path 比如你要对MyAppDemo.app进行签名,并使用您之前申请的证书. codesign -s

MPC8313ERDB不新建pkg包,把文件放进Ramdisk

通过ltib编译生成的rootfs.ext2.gz.uboot可以直接在uboot使用,如果我们在外部编译生成了相应的文件要放到Ramdisk里面去,可以新建一个pkg包,然后再配置编译生成(这个我没有试过,,,),当然这种方法比较的麻烦,那么有一个更简单的方法,不需要新建一个pkg就可以直接把文件放进Ramdisk里面去. 要把文件放进去有两种方法: 1. 在ltib的安装目录新一个名为merge的文件夹,然后把你需要放进去的文件放到该文件夹,系统在生成Ramdisk的时候,会把merge里面

FreeBSD包管理器pkg

有时候,使用pkg安装软件时会提示: pkg: cached package  xxx: size mismatch, fetching from remote 删除/var/db/pkg/repo-your_repo.sqlite可以解决问题 =-=-=-=-=Powered by Blogilo

saltstack模块之pkg相关模块

1.pkg.available_version模块 pkg.available_version: 返回所查询软件包可供安装或更新的最新版本.如果指定多个软件包,则以字典的形式输出返回结果. [[email protected] ~]# salt '*' pkg.available_version httpd salt-minion02.contoso.com:     2.2.15-59.el6.centos salt-minion01.contoso.com:     2.2.15-59.el

MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk

经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里走.您可以创建一个pkg包裹.然后配置编译(,.,).当然这样的方法比較的麻烦.那么有一个更简单的方法,不须要新建一个pkg就能够直接把文件放进Ramdisk里面去. 要把文件放进去有两种方法: 1. 在ltib的安装文件夹新一个名为merge的文件夹.然后把你须要放进去的文件放到该文件夹,系统在生成Ramdisk的时候,会把merge里面的全部内容复制到Ramd

pkg: cached package *:size mismatch, cannot continue

sudo pkg update -f 版权声明:本文为博主原创文章,未经博主允许不得转载.

SaltStack源码分析之pkg状态模块

pkg状态模块使用各个操作系统自带的包管理工具来安装各种软件包,例如RedHat系列使用YUM安装软件包,Ubuntu使用apt-get安装等 /usr/lib/python2.6/site-packages/salt/states/pkg.py ''' Installation of packages using OS package managers such as yum or apt-get ================================================