• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby基础教程(Day3)—— 创建命令

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

创建命令

  1. 命令行的输入数据
  • 向程序传递数据,最简单的方法就是使用命令行。Ruby中,使用ARGV这个Ruby预定义好的数组来获取从命令行传递过来的数据。数组ARGV中的元素就是在命令行中指定的脚本字符串参数。
  1. 文件的读取
  • Ruby除了读取命令行传递过来的字符串参数外,还可以读取预先写在文件中的数据
  • Ruby的源代码中有一个名为ChangeLog的文件夹,里面记录了Ruby相关的修改日志
  • 从文件中读取内容并输出,首先创建一个单纯读取文件内容的程序,流程如下
    • 打开文件

    • 读取文件的文本数据

    • 输出文件的文本数据

    • 关闭文件

    • read_text.rb文件

       filename = ARGV[0]
       file = File.open(filename) # ①
       text = file.read # ②
       print text # ③
       file.close # ④
      
    • 创建一个要读取的文件text

    • ruby read_text.rb text

    • 其实如果只是读取文件内容,直接使用read方法会让程序更简单

      filename=ARGV[0]
      text=File.read(filename)
      print text
      

  • 从文件中逐行读取内容并输出
    • 一下子读取全部文件内容会耗时
    • 读取的文件内容会暂时保存在内存中,遇到大文时,程序有可能因此而崩溃
    • each_line方法就是对文件进行逐行处理
      	 filename = ARGV[0]
      	 file = File.open(filename)
      	 file.each_line do |line|
      	 	print line
      	 end
      	 file.close
      
    • 从文件中读取指定模式的内容输出
      • Unix中有一个grep的命令。grep命令利用正则表达式搜索文本数据,输出安扎指定模式匹配到的行。
      • grep.rb
        	 pattern = Regexp.new(ARGV[0])
        	 filename = ARGV[1]
        	 file = File.open(filename)
        	 file.each_line do |line|
        	 	if pattern =~ line
        	 		print line
        	 	end
        	 end
        	 file.close
        
      • ruby simple_grep.rb 模式 文件名=ruby grep.rb hello text
    • 方法的定义
      • 定义方法的语法如下
        	def 方法名
        		希望执行的处理
        	end
        
      • 简单的例子 ruby hello.rb
        	def hello
        		puts "hello, ruby"
        	end
        	hello()
        
    • 其他文件的引用
      • 重复使用程序的某部分
      • 大部分编程语言都提供了把多个不同程序组合为一个程序的功能。像这样,被其他程序引用的程序,我们称为
      • Ruby使用require方法或者require_relative方法来引用库
        	require 希望使用的库名
        		或者
        	require_relative 希望使用的库名
        
      • 库名可以省略后缀.rb
      • 调用require方法后,Ruby会搜索参数指定的库,并读取库的所有内容。库内容读取完毕后,程序才会执行require方法后面的处理
      • require方法用于引用已存在的库。只需要指定库名,程序就会在预先定义好的路径下查找并读取与Ruby一起安装的库。而require_relative方法在查找库时,则是根据执行中的程序目录(文件夹)来进行的。这有利于程序读取写在不同文件的代码
      • use_grep.rb
        	require_relative "grep" # 读取 grep.rb(省略“.rb”)
        	pattern = Regexp.new(ARGV[0])
        	filename = ARGV[1]
        	simple_grep(pattern, filename)
        
      • grep.rb
        	def simple_grep(pattern, filename)
        		 file = File.open(filename)
        		 file.each_line do |line|
        			 if pattern =~ line
        			 	print line
        			 end
        		 end
        		 file.close
        	end
        
      • ruby use_grep.rb hello text
  1. pp方法
  • Ruby除了提供p方法,还提供了一个类似作用的方法–pppp是英语pretty print的缩写。

  • 要使用pp方法,我们需要使用require方法引用pp

  • p方法不同的是,pp方法在输出对象的结果时,为了更容易看懂,会适当地换行以调整输出结果。

  • pp.rb

    	require "pp"
    	books = [
    		 { title: " IT ", author: " Arile " },
    		 { title: " science ", author: " 阿黄 " },
    		 { title: " 好书 ", author: "花花" },
    	]
    	p books
    	pp books
    


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用rvm安装ruby发布时间:2022-07-14
下一篇:
基于React.js+Redux+Bootstrap的RubyChina示例(转)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap