• Ruby 入门


    在学iOS开发不久就接触到Podfile、 Cocoapod,后面了解到这两个工具都是基于ruby实现的。通过源码的阅读对他们大致总结为:通过 Ruby 来调用终端命令。下面介绍学习ruby需要用到的相关知识

    bundler

    bundler 是用于管理 ruby gem 的工具,使用方法和cocoapod很相似

    source 'http://ruby.taobao.org'
    
    gem 'cocoapods', '~>0.37.2'
    gem 'fastlane', '~>1.4.0'

    Ruby(静态代码分析)

    安装方法如下:

    gem install rubocop

    变量的类型

    ● 局部变量(local variable)

     以英文小写字母或者 _ 开头。

    ● 全局变量(global variable)

    以 $ 开头

    ● 实例变量(instance variable)

    以 @ 开头

    ● 类 变 量 ( c l a s s v a r i a b l e )

    以 @@ 开头。

     

    常量

    常量以大写英文字母开头,

    与变量不同的是,对已经 赋值的常量再进行赋值时,Ruby 会发出警告

    读取文件内容

    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

    如果想读取info.plist文件中含有NSMicrophoneUsageDescription关键字,只需要执行如下命令:

    ruby print_lint.rb NSMicrophoneUsageDescription Info.plist

    其它文件的引用

    Lib.ruby

    def simple_grep(pattern, filename)
    file = File.open(filename)
    file.each_line do |line|
        if pattern =~ line
           print line
        end
     end
     file.close
    end

    User.ruby

    require_relative "Lib"
    
    pattern = Regexp.new(ARGV[0])
    filename = ARGV[1]
    simple_grep(pattern, filename)

    执行命令如下:

     ruby user.rb LSApplicationQueriesSchemes Info.plist

    模块

    模块是 Ruby 的特色功能之一

    ● 模块不能拥有实例

    ● 模块不能被继承

    module M
         def meth
    "meth" end
    end
    class C
    include M # 包含M模块
    end
    c = C.new
     p c.meth     #=> meth

    类 C 的实例在调用方法时,Ruby 会按类 C、模块 M、类 C 的父类 Object 这个顺序查找该 方法,并执行第一个找到的方法。被包含的模块的作用就类似于虚拟的父类

  • 相关阅读:
    pycharm中文乱码
    bootstrap-table分页
    sql将查询结果的某个字段赋值给另一个字段
    bootstrap tab选项卡
    cocos-js 精灵移动转圈
    配置环境变量路径有空格
    配置java环境遇到的问题及解决方案
    obj = obj || {} 分析这个代码的起到的作用
    sql server行转列
    sql server统计总成绩和排名
  • 原文地址:https://www.cnblogs.com/jinlongyu123/p/12070281.html
Copyright © 2020-2023  润新知