zoukankan      html  css  js  c++  java
  • ruby和python简单对比

    先说说题外话,以前很少写blog,最开始有整理过技术文章到QQ空间,后面整理到WORD以及文本里。再后来网上查找资料的之后发现cnblog上面的蛮专业的。我也觉得把资料存放在网络中永远不会丢。所以就出现在这里了。

      今天从五角场回来后,想起上个月买的《学习ruby》一书。买这个本书完全是因为puppet是ruby写的原因。多多少少会用到点ruby方面的知识。一大下午的时间翻阅了这个本数后,和原来判断是相同,ruby和python很有80%,甚至更多的相同之处。面向对象,数组,哈希表都和python基本相同。简单的对比后,我还是觉得python更好,更加简洁易懂。

    ruby一个功能有多重表现方式很不好,比如语句块可以do,end或者{}。另外,可能是看的教材比较简略,感觉基本类的方法没有python多。

      不过ruby也有些不错的地方:

    1、each方法

    和python的迭代器类似,不过是显示的使用。

    可用在字符串,数组,哈希,文件(ruby的说法)

    aList=['a','b','c']

    aList.each do |e|

      puts e

    end

    puts有点类似print,echo输入,对应的输入是

    aList.each { |e| puts e }

    {}和do end一样,不过优先级更高。

    遍历字符串

    aString='abc'

    aString.each { |i| puts i}

    遍历哈希的k,v

    zip={'a'=>1,'b'=>2,'c'=>3,}

    需要注意的ruby哈希和python字典key value组合不一样ruby是=>,python是:分隔。

    zip.each {|k,v| puts "#{k},#{v}"}

    和python字典一样也有zip.each_key,zip.each_value

    2、Dir类

    在我影响中python木目录没有当做一个类。ruby中把目录当成一个类

    Dir.chdir('/root')

    Dir.getwd()

    Dir.pwd()

    Dir.mkdir()

    Dir.entries()方面能返回目录下的文件目录隐藏文件为一个数组,所以可以用each方面遍历目录。

    Dir.entries('/root').each {|f| puts f}

    同样也可以遍历文件内容

    File=file.open('/root/test.file')

    File.each { |line| print "#{file.lineno}." line }

    file.lineno 行编号

    3、嵌入ruby

    这个在puppet中运用于模板中

    #!/usr/bin/env ruby

    require 'erb' #类似python import

    person = "Jin"

    temp=ERB.new("Hello,<%= person %>")

    puts temp.result(binding)

    puppet中的实例

    <% nameservers.each do |ns| %>nameserver <%= ns %>
    <% end %>

    标签      说明

    <% ... %>  ruby代码,输入结果嵌入一行中

    <%= ... %>  ruby表达式,以计算结果取代,如用变量取代。

    <%# ... %>  测试;忽略,在测试时很好用

    4、好像Rails还不错

    感觉这个这个开发框架比django简单。仅仅是感官而已,没有深入研究。

  • 相关阅读:
    idea设置全局ignore
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please ins
    win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistr
    kafka 删除 topic
    java编译中出现了Exception in thread “main" java.lang.UnsupportedClassVersionError
    Centos中使用yum安装java时,没有jps的问题的解决
    Spring 整合Junit
    Spring纯注解配置
    Spring 基于注解的 IOC 配置
    打印java系统的信息
  • 原文地址:https://www.cnblogs.com/diege/p/2698300.html
Copyright © 2011-2022 走看看