Go+ 行过滤器教程(4.16)

举报
liuzhen007 发表于 2022/02/25 23:31:12 2022/02/25
1.7k+ 0 0
【摘要】 ​目录Go+ 概述正文导入包行过滤器Go+ 概述Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。正文行过滤器是一种常见的程序类型,它读取 stdin 上的输入,对其进行处理,然后将一些导出的结果打印到 stdout。...

目录

Go+ 概述

正文

导入包

行过滤器


Go+ 概述

Go+ 是一门融合工程开发的 Go、数据科学领域的 Python、编程教学领域的 Scratch,以 Python 之形结合 Go 之心,让工程师处理数据不需要学习新的开发语言,让初学者学习编程、开发作品的门槛更低的编程语言。

正文

行过滤器是一种常见的程序类型,它读取 stdin 上的输入,对其进行处理,然后将一些导出的结果打印到 stdout。grep 和 sed 是常用的行过滤器。Go+ 也提供了相关的方法,今天我们就来了解一下这方面的一些内容。

导入包

Go+ 在操作行过滤器时,一般会使用的工具库是 bufio 包,导入方式如下:

import (
    "bufio"
)

行过滤器

下面通过一段程序来演示行过滤器是什么使用的,示例代码如下:

import (
    "bufio"
    "os"
    "strings"
)

scanner := bufio.NewScanner(os.Stdin)

for scanner.Scan() {
    ucl := strings.ToUpper(scanner.Text())
    println(ucl)
}

if err := scanner.Err(); err != nil {
    println(os.Stderr, "error:", err)
    os.Exit(1)
}

将上述代码保存成文件 line-filters.gop,执行如下命令:

echo 'hello'   > /tmp/lines
echo 'filter' >> /tmp/lines
cat /tmp/lines | gop run line-filters.gop

输出结果:

HELLO
FILTER

我们看到原来写入到文件  /tmp/lines 中的小写 hello 和 filter 单词,都转换成了大写。

亲自试一试!


作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。