ruby入门教程 免费篇

ruby入门教程 免费篇
ruby入门教程 免费篇

介绍

这是一个短小的Ruby入门,完全读完只需20分钟。这里假设读者已经安装了Ruby,如果你没有安装的话,请在阅读文前访问Ruby 官方网站进行下载并安装。

交互式的Ruby

打开IRB(交互式Ruby外壳):

如果你使用Mac OS X,那么请打开终端窗口输入irb;

如果你使用Linux,那么请打开shell输入irb;

如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它。

Ok,在打开IRB之后,在其中输入"Hello World"。

Ruby听从你的安排!

发生了什么?我们刚才编写了世界上最短小的“Hello World”程序吗?这么说不太确切。第二行输出是IRB告诉我们:上一个表达式的评

估结果。如果我们希望打印出“Hello World”,那么就还需要一点努力:

puts在Ruby中是一个简单的打印输出命令。后面的“=>nil”表示什么?——那是表达式的结果。Puts总是返回nil,这是Ruby中表示“绝对无值”(absolutely-positively-nothing value)的方式,看上去有些类似Java中的null。

你的免费计算器在这里!

无需做什么,我们就能把IRB作为一个简单的计算器使用:

这样就能计算3+2。够简单的!那么3乘以2如何?你可以在下面继续输入3*2,也可以回到上面(3+2处)重新修改你刚刚输入的计算公式。使用键盘上的向上键,使光标到达3+2那一行,再用左键移动光标到加号上,然后使用空格键进行修改。

下面,让我们尝试计算3的平方:

在Ruby语言中,**表示幂运算。那么如何计算平方根呢?

Ok,等一下,表达式中的sqrt(9)表示什么?你一定能猜到这是计算9的平方根。而Math表示什么?不要着急,下面就让我们进一步了解像Math这样的模块。

模块——按照主题分组的代码

Math是Ruby内建的数学模块。在Ruby中,模块提供了两种角色:一种角色是将类似的方法聚集在同一个“家族”名下。因此,Math 也包括sin、tan这样的方法。第二种角色是一个圆点(dot),它标记了消息的接收者。什么是消息?在上面的例子中,sqrt(9)便是消息,它意味着调用sqrt方法取出9的平方根。

Sqrt方法调用的结果是3.0。你可能注意到它并不是3。这是因为多数情况下,数字的平方根并不是整数,所以这里返回了一个浮点数。

那么我们如何记住这些计算结果呢?——将结果赋值给变量。

如何定义方法?

如何才能方便省事地随意输出字符串,而无需过多地劳烦我们的手指呢?——我们需要定义一个方法!

上面的代码中第一行“def h”标志着方法定义的开始。它告诉Ruby 我们正在定义一个名为h的方法。下面一行是方法体:puts"Hello World"。最后,也就是第三行“end”通知Ruby我们完成了方法定义。Ruby的回应“=>nil”告诉我们它已经知道我们定义了此方法。

简短、重复地调用方法

现在,让我们尝试多次执行这个方法:

哈,这太容易了。在Ruby中调用某个方法只需将方法名提交给Ruby。当然,这是在方法没有参数的情况下。如果你愿意也可以添加一个空白的括号,但是这没有必要。

如果我们想对某个人说hello而不是整个“世界”(world),那该怎么做?——重定义h方法使它接收name参数。

嗯,现在看来工作正常。

字符串中的奥秘

“#{name}”是什么意思?这是Ruby在某个字符串中插入其它字符的方式。在大括号之间放入的字符串(这里是指name)将被外部的

字符串代替。你也可以使用字符串类内建的capitalize方法来确保某人名字的首字母大写:

上面的代码有两个地方需要说明:

第一,我们通过无括号的方式调用方法,因为括号是可选的;

第二,这里的默认参数值为“World”。也就是说在调用方法时如果没有提供name参数,则使用默认值“World”。

进化为Greeter!

我们是否需要一个真正的问候者(greeter),他能记住你的名字、问候你、总是尊重地向你示好?那么这就最好建立一个“Greeter”类:

在上面的类代码中定义了一个称为Greeter的类和一些类方法,其中出现了一些新的“关键词”:请注意“@name”,它是类的实例变量,并对类中的所有方法(say_hi和say_bye方法)都有效。

如何让Greeter类发挥作用?现在让我们来建立一个Greeter对象

并使用它!

Greeter类的实例对象g被建立后,它便接受了name参数(值为Pat)。那么我们能直接访问name吗?

看看上面的编译错误来看,这样直接访问name是行不通的。

窥视对象的内部

对象中的实例变量总是隐藏于其中,但也并非毫无踪迹可寻,通过审查(inspect)对象便会见到它们。当然还有其它的访问方法,但是Ruby采用了良好的面向对象的方式来保持数据的隐藏性。

喔!这么多方法,可是我们只定义了两个方法呀?其它的方法又出自何处?不要担心,instance_methods方法列出了Greeter对象的所有方法,其中包括父类中定义的方法。如果我们只想对Greeter类的方法进行列表的话,那么把false作为参数调用instance_methods方

法即可。false意味着我们不需要父类定义的方法。

哈哈,这才是我们想要的。下面让我们看看Greeter对象能回应

哪些方法:

它知道say_hi、to_s(此方法将对象转换为字符串,是任何对象都必备的默认方法,很想Java中的toString方法),但它不知道name。

随时修改类定义

如何才能查看或者修改name呢?Ruby提供了访问对象变量的简

单方法:

在Ruby语言中,你能够多次打开某个类并修改它。而修改所带来的变化将应用在此后建立的任何新对象中、甚至现存的此类对象中。下

面让我们建立一个新对象并访问它的@name属性。

我们通过使用attr_accessor定义了两个方法:

“.name”用来获取name属性值;

“.name=”用来设置namee属性值。

这很类似在Java类中访问被Public修饰的成员变量。

向每个人问候,MegaGreeter不会漏掉一个人

Greeter并不完美,因为它只能一次服务一个人。所以我们在这里设计一个能够一次向全世界、世界上每个人或者在名单中的人发送问候的MegaGreeter类。在这里,我们将放弃从前的IRB交互模式,转而改为编写Ruby程序文件。

退出IRB的方法:输入“quit”、“exit”或者按下Control+D的组合键。

保存上面的代码到名为“ri20min.rb”的文件中,并使用“ruby ri20min.rb”的命令执行它。程序输出如下:

下面我们将深入了解一下上面的代码。

请注意上面代码中的起始行,它以#开头。在Ruby语言中,任何以#开头的行都被视为注释,并被解释程序忽略。

我们的say_hi方法已经发生了变化:

它查找@names参数并按照其参数值作出决定:

如果参数值为nil,它将打印三个圆点。

那么@names.respond_to?("each")表示什么?

循环——也叫迭代

如果@names对象具有each方法,那么它是可以被迭代的,进而可以对其进行迭代,从而问候列表中每个人。如果@names不具备each 方法,则将它自动转换为字符串,并执行默认的问候。

each是一种方法,它接受一个代码块(block of code),然后针对列表中的每个成员执行这个代码块,而在do和end之间的部分便是这

个非常类似匿名函数的代码块。在管道符之间的变量是代码块的参数name,它作为代码块参数被绑定为列表成员,而代码块puts"Hello #{name}!"将使用这个参数进行输出。

大多数其它的编程语言使用循环遍历列表,下面是C语言的循环

示例:

上面的代码显然可以工作,但它不够“优雅”!你不得不用i这个多余的循环变量,还需要指出列表的长度,然后再解释如何遍历列表。

Ruby的迭代方式则更加优雅,所有的内部管理细节都隐藏在each 方法中,你所需做的就是告诉它如何处理其中的每个成员。

块(block),Ruby边缘的高亮点!

块(block)的真正优势在于:能够处理比列表更加复杂的对象。除了在方法中可以处理简单的内部管理细节外,你还能处理setup、teardown和所有错误,而不让用户有所察觉。

say_bye方法没有使用each,而是检查@names是否具有join方法,如果具有join方法,则调用join方法。否则它将直接打印@names 变量。

此方法并不关心变量的实际类型,这依赖于它所支持的那些被称为“Duck Typing”的方法:duck typing是动态类型的一种形式:变量的值自身隐含地决定了了变量的行为。这暗示了某个对象与其它实现了相同接口的对象之间是可交换的,不管对象之间是否具有继承关系。鸭子测试(duck test)是对duck typing的一种形象比喻——“如果它走路像鸭子,那么也一定像鸭子一样呷呷地叫,那么它必定是一只鸭子”。duck typing是某些编程语言的特性:如Smalltalk,Python,Ruby, ColdFusion。

Duck Typing的益处是无需对变量的类型进行严格地限制,如果某人使用一种新类型的列表类,只要它实现了与其它列表相同语义的join

方法,便可以拿来使用。

启动脚本

文件上半部分是MegaGreeter类的代码,而后面剩下的部分则是对这些类方法的调用。而这是我们最后值得注意的一点:

__FILE__是一个“具有魔力”的变量,它代表了当前文件名。$0是用于启动程序的文件名。那么代码“if__FILE__==$0”便意味着检查此文件是否为将被使用的主程序文件。这样做可以使程序文件作为代码库使用,而不是可执行代码;但当此文件被用作执行文件时,也可被执行。

感谢阅读此文

Ruby的简单实例

Ruby的简单实例 ?出处:站长百科 ?原文地址:https://www.360docs.net/doc/3912571331.html,/wiki/Ruby的简单实例 ?本电子书整理自站长百科Ruby简单实例词条,查看内容请访问网站。 让我们写一个计算阶乘的函数.对于阶乘的数学定义如下: n! = 1 (当 n==0 时) = n * (n-1)! (其它情况) 在Ruby里,可以这样来写: def fact(n) if n == 0 1 else n * fact(n-1) end end ?出处:站长百科

你可能会发现 end 的反复出现,正因为如此,Ruby被叫做"类Algol"语言.(实际上,Ruby的语法更像Eiffel).同时,你也可能会发现这段函数缺少 return语句.在这里是可以用return的,但却不是必须的,因为一个Ruby的函数会自动返回它所最后赋值的元素. 让我们来试试我们的阶乘函数.加入一行代码会使它成为一个可工作的程序: # Program to find the factorial of a number # Save this as fact.rb def fact(n) if n == 0 1 else n * fact(n-1) end end print fact(ARGV[0].to_i), "\n" ?出处:站长百科

这里,ARGV是一个包含命令行参数的数组,to_i将字符串转化为整数. % ruby fact.rb 1 1 % ruby fact.rb 5 120 当参数为40时它可以工作吗?它将使你的计算器产生溢出(overflow)... % ruby fact.rb 40 815915283247897734345611269596115894272000000000 它确实算出来了.实际上,Ruby能处理任何你机器的内存所允许的整数.实际上400!也可以: % ruby fact.rb 400 6403452284662389526234797031950300585070258302600295945 8684 4459428023971691868314362784786474632646762943505750358?出处:站长百科

Groovy_快速入门

Groovy 快速入门
1、集合 、 (1)List (java.util.List) ) list = [1, 2, 'hello', new java.util.Date()] assert list.size() == 4 assert list.get(2) == 'hello' 注意:一切都是对象(数字会自动转换) (2)Map (java.util.Map) ) map = ['name':'James', 'location':'London'] assert map.size() == 2 assert map.get('name') == 'James' (3)遍历集合 ) list = [1, 2, 3] for (i in list) { println i } 2、闭包(Closures) 、闭包( ) ? 闭包类似 Java 的内类,区别是闭包只有单一的方法可以调用,但可以有任意的参数 closure = { param | println("hello ${param}") } closure.call("world!") closure = { greeting, name | println(greeting + name) } closure.call("hello ", "world!") 闭包用“{}”括起,“|”前面是参数,后面是处理语句,使用 call 调用 这里我们使用了一个 Groovy-Beta3 闭包定义, 只是为了让您能看懂老版本 Groovy 的一些例子。 在 新的 Groovy JSR 中对闭包的定义略有改动, 因为 | 字符同时也是 Java 中的位操作符; Groovy JSR 建议使用 Nice (另外一种 JRE 语言)样式的 -> 分隔符代替它。 ? 第一个例子演示了在字符串内使用参数的形式:${param} ? 第二个例子演示了多参数形式:用“,”分隔参数 ? 如果只有一个参数,可以不写,而使用缺省的参数“it”,如下面的例子: closure = { println "hello " + it } closure.call("world!") 3、each 、 ?
遍历集合,逐个传递给闭包
[1, 2, 3].each { item | print "${item}-" } ? 上面例子的输出结果是:1-2-3-

Ruby字符串

Ruby字符串 ?出处:站长百科 ?原文地址:https://www.360docs.net/doc/3912571331.html,/wiki/Ruby‐字符串 ?本电子书整理自站长百科Ruby‐字符串词条,查看内容请访问网站。 站长百科(https://www.360docs.net/doc/3912571331.html,/wiki)站长自己的百科全书分享自己的建站知识 WIKI平台与站长一道共建知识库站长百科活动不断论坛发帖赚银币! 参加1美元竞拍更有机会赢2G超大免费空间! 超值好礼等您拿 Ruby将字符串像数字一样处理.我们用单引号('...')或双引号("...")将它们括起来. ruby> "abc" "abc" ruby> 'abc' "abc" 单引号和双引号在某些情况下有不同的作用.一个由双引号括起来的字符串允许使用转义字符,就是反斜杠开头的字符,而且可以用#{}内嵌表达式.而单引号括起来的字符串并不会对字符串作任何解释;你看到的是什么便是什么.几个例子: ?出处:站长百科

ruby> print "a\nb\nc","\n" a b c nil ruby> print 'a\nb\n',"\n" a\nb\nc nil ruby> "\n" "\n" ruby> '\n' "\\n" ruby> "\001" "\001" ruby> '\001' ?出处:站长百科

"\\001" ruby> "abcd #{5*3} efg" "abcd 15 efg" ruby> var = " abc " " abc " ruby> "1234#{var}5678" "1234 abc 5678" Ruby的字符串操作比C更灵巧,更直观.比如说,你可以用+把几个串连起来,用*把一个串重复好几遍: ruby> "foo" + "bar" "foobar" ruby> "foo" * 2 "foofoo" 相比之下,在C里,因为需要精确的内存管理,串联字符串要笨拙的多: char *s = malloc(strlen(s1)+strlen(s2)+1); ?出处:站长百科

《Ruby on Rails敏捷开发最佳实践》PDF教程

《Ruby on Rails敏捷开发最佳实践-精典章节收录》PDF教程 申明:本PDF教程由https://www.360docs.net/doc/3912571331.html,网站搜集整理,如需转载,请务必注明出处。介绍:Ruby On Rails框架一经推出,立即引起B/S结构应用开发领域革命性的变化:开发者无需理会架构,只需要按Rails框架的约定向应用中填充代码,一切OK。 为了让众多Ruby On Rails学习、工作者,以及准备使用Ruby On Rails作为开发平台的开发人员能快速掌握Ruby On Rails的开发,作者精心编写了本书,书中既详细讲解了Ruby语言的基本语法,又重点介绍了Rails框架相关知识点的各种用法。最后给出两个综合案例,作为Ruby On Rails应用开发者的参考,读者可以通过这两个案例触类旁通,解决日常开发中的问题。 读者对象 本书适用于正在使用Ruby On Rails进行应用开发的开发人员、渴望了解Ruby On Rails框架的开发人员,尤其适合有初步的Java EE开发经验,想从Java EE平台过渡到Ruby On Rails开发平台的开发者。(未完待续) https://www.360docs.net/doc/3912571331.html,

第15章Rails 的邮件抽象层 本章要点 ·电子邮件的基础知识 ·SMTP 协议初步 ·POP3协议初步 ·在Ruby 程序中使用SMTP 支持发送邮件 ·在Ruby 程序中使用POP3支持接收邮件 ·ActionMailer::Base 的邮件支持 ·在Rails 应用中发送邮件 ·发送HTML 格式邮件 ·发送带附件的邮件 ·电子邮件在实际应用中的用途 ·账户需要激活的优势 ·实现注册激活系统 15.4注册激活系统 本章将介绍一个注册激活系统,当用户输入注册信息时,必须输入有效的邮箱,当用户注册成功后,并不能立即登录系统,而要登录注册时输入的邮箱,然后通过该邮箱内的激活邮件来激活自己账户。通过这种方式可以防止用户恶意注册,保证用户必须输入有效的邮箱地址。 15.4.1基本注册功能 当用户注册一个账户时,实际上就等同于向底层数据表增加一条记录,因此本应用必须有持久层支持。本示例应用的注册功能需要一个数据表支持,该数据表用于保存系统的所有注册账户。下面是本应用的数据库脚本: drop database if exists regist_development; create database regist_development; use regist_development; --创建用户表 create table users ( id int not null auto_increment,

ruby入门教程 免费篇

介绍 这是一个短小的Ruby入门,完全读完只需20分钟。这里假设读者已经安装了Ruby,如果你没有安装的话,请在阅读文前访问Ruby 官方网站进行下载并安装。 交互式的Ruby 打开IRB(交互式Ruby外壳): 如果你使用Mac OS X,那么请打开终端窗口输入irb; 如果你使用Linux,那么请打开shell输入irb; 如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它。 Ok,在打开IRB之后,在其中输入"Hello World"。 Ruby听从你的安排! 发生了什么?我们刚才编写了世界上最短小的“Hello World”程序吗?这么说不太确切。第二行输出是IRB告诉我们:上一个表达式的评

估结果。如果我们希望打印出“Hello World”,那么就还需要一点努力: puts在Ruby中是一个简单的打印输出命令。后面的“=>nil”表示什么?——那是表达式的结果。Puts总是返回nil,这是Ruby中表示“绝对无值”(absolutely-positively-nothing value)的方式,看上去有些类似Java中的null。 你的免费计算器在这里! 无需做什么,我们就能把IRB作为一个简单的计算器使用: 这样就能计算3+2。够简单的!那么3乘以2如何?你可以在下面继续输入3*2,也可以回到上面(3+2处)重新修改你刚刚输入的计算公式。使用键盘上的向上键,使光标到达3+2那一行,再用左键移动光标到加号上,然后使用空格键进行修改。

下面,让我们尝试计算3的平方: 在Ruby语言中,**表示幂运算。那么如何计算平方根呢? Ok,等一下,表达式中的sqrt(9)表示什么?你一定能猜到这是计算9的平方根。而Math表示什么?不要着急,下面就让我们进一步了解像Math这样的模块。 模块——按照主题分组的代码 Math是Ruby内建的数学模块。在Ruby中,模块提供了两种角色:一种角色是将类似的方法聚集在同一个“家族”名下。因此,Math 也包括sin、tan这样的方法。第二种角色是一个圆点(dot),它标记了消息的接收者。什么是消息?在上面的例子中,sqrt(9)便是消息,它意味着调用sqrt方法取出9的平方根。 Sqrt方法调用的结果是3.0。你可能注意到它并不是3。这是因为多数情况下,数字的平方根并不是整数,所以这里返回了一个浮点数。

Ruby语言入门教程

Ruby语言入门教程 Version0.6 编著张开川 kaichuan_zhang@https://www.360docs.net/doc/3912571331.html,

目录 自序 (3) 第一章概述 (4) 1.1编程语言的发展简史 (4) 1.2编程其实很容易 (5) 1.3Ruby的由来 (6) 1.4Ruby的特性 (7) 第二章 (8) 2.1下载Ruby1.8.5 (8) 2.2安装Ruby1.8.5for Windows (8) 2.3开始第一个小程序 (10) 2.4ruby语言的集成开发环境 (12) 第三章语法快览 (14) 3.1注释与分行 (14) 3.2分隔符 (15) 3.3关键字 (16) 3.4运算符 (17) 3.5标识名和变量的作用域 (19) 3.6类库 (19) 3.7数据类型 (20) 3.8赋值和条件运算符 (21) 3.9条件判断语句 (22) 3.10循环语句 (24) 3.11常与线程 (29) 3.12一个综合小练习 (30) 第四章一切都是对象 (31) 4.1两种思维方式 (31) 4.2对象 (32) 4.3封装 (33) 4.4继承 (34) 4.5多态36小跋37

自序 其它编程语言的学习都主要来自于书本,而Ruby的学习却是完全经由网络。我想,回报网络的最好方式就是在网络上还没有Ruby中文书籍的时候,编著一本Ruby中文入门教材。感谢编程语言发展史上的前辈们;感谢网络论坛上程序员们或是理智,或是激烈的讨论;感谢一切看到这本书的人。 曾经经受了SCJP的挖掘、挖掘、再挖掘(基于1.4,还没有Java5,Java6的许多特性),初遇Ruby,觉得十分亲切,仿佛童年时得到一个新奇的玩具。把玩之后,才发现玩具的塑料外壳里,藏着一把瑞士军刀。自此,模式、框架常常变得多余,很多时候可以更直接。好比在量子时代,星际航行只是一次时空转换而已,航天飞机静静地躺在博物馆里,那是旧时代科学的极致代表。 从物理课本中,我们感受到爱因斯坦的伟大,但对牛顿则怀以更加崇敬的心情。身体终将消逝,而你,我,他——我们的意识却将在网络中延续。旧时代文明的延续依赖于纸质书籍,书籍传递了理性之光。也许直觉才是这个宇宙本体的最初相用,直觉是一种天赋,我无从把握,但是理性,如此真切实在,她照亮了我,照亮了你,直到未来。 思,亘古如斯又倏忽闪现,谁的惊愕能深究它。 ——海德格尔 张开川 2006年12月31日

hbuilder入门教程

hbuilder入门教程 HBuilder不仅仅提示全面的语法,非语法的各种候选输入也都能提示。包括图片、链接、颜色、字体、脚本、样式、URI、ID、class、自定义JS对象、方法。小编在本文详细介绍了Hbuilder编辑器的使用方法。 Q:怎么才能快速掌握HBuilder开发技巧? A:软件自带HelloHBuilder项目,该项目为教程项目(如果不小心删除了不要担心,可以在新建WEB项目时,使用HelloHBuilder模板新建出来),按照项目中的lesson1.txt中的快捷键敲一遍即可快速掌握HBuilder快速开发技巧。 Q:什么是HTML5+? A:HTML5+规范是基于HTML5的扩展规范,用于弥补HTML5和原生应用功能之间的差距。HTML5+规范是一个开放的规范,在W3C中国的指导下,由HTML5中国产业联盟运作所有规范都是面向开发者的,开

发者提需求、开发者评审实现方案、开发者投票选定规范。 Q:什么叫滚动条信息点? A:当代码中有重要的标记出现时,会生成滚动条信息点,在滚动条右侧出现颜色各异的点。点击这些点或使用跳转到下一个信息点功能,可以快速到达这些代码处。如下标记会生成信息点:书签、任务、错误提示。 HBuilder滚动条信息点 Q:怎么实现代码追踪? A:在编辑代码时经常会出现需要跳转到引用文件或者变量定义的地方,HBuilder提供了一个非常好用的代码追踪功能,只需要按住Ctrl+鼠标左键即可实现追踪。 图示: hbuilder代码追踪 Q:输入small不提示,语法库是不是不全? A:代码块是否提示,取决于是否设置了这个代码块,代码块是可

Ruby on Rails 之 Oracle 应用:简易教程

Ruby on Rails 之 Oracle 应用:简易教程 您可能听说过 Ruby on Rails,一个似乎正以狂风暴雨之势席卷 Web 开发社区(尤其是 JEE 和 PHP 的编程人员)的新应用框架。 Rails 是功能强大的 Web 应用平台,而且深受 JEE 和 PHP 的编程人员的喜爱。当您了解了 Rails 的优势后,您就会理解它为何对 J2EE 和 PHP 编程人员有如此的吸引力。首先,它使用任何自视甚高的设计模式专家都很钦佩的严格的模型-视图-控制器体系结构;这可以解释它为什么吸引了大量 JEE 开发人员。其次,使用 Rails 可以轻松地构建基本系统—这对 PHP 开发人员具有吸引力。 然而,从数据库的角度来说,Rails 还是有一些非常大的局限性。Rails 对您的数据库布局和应用程序需求做出了许多假定。例如,Rails 假定所有表都使用单一的非组合式主键。需通过Rails 插件支持组合式主键。此外,Rails 支持多数据库而且可以对其间事务进行协调;Rails 不支持两阶段提交。 本文章的目的不在于对 Rails 进行赞扬或批评,而只是对该技术的介绍。其中包含表扬也包含有批评。有时批评可能看起来过重了(尤其对于那些 Rails 的热爱者来说),但是请不要将 Rails 看得神乎其神。使用任何 Web 应用框架都是需要技巧的,无论是 JEE、https://www.360docs.net/doc/3912571331.html, 还是 PHP。从长远来看,使用 Rails 可能比使用许多其他 Web 应用程序开发平台更高效,但是也需要假以时日来学习其中的技巧。 Ruby 是什么?Rails 是什么? Ruby 是一种动态编程语言,在很多方面和 Perl、Python 以及 Smalltalk 相似,但也有自己的特点。Java 和 PHP 编程人员似乎可以非常轻松地学会该语言,而且他们是 Ruby 的最忠实的拥护者。但是其他人也为该语言所吸引;这其中还包括著名的 Microsoft 王国中最资深的专家之一 Don Box。 Ruby 并不是新生事物;它创建于 1993 年,时间比 1995 年发布的 Java 或 PHP 都要久。当时 Ruby 语言虽已成熟,但不如某些其他语言受欢迎。因此,Ruby 编程语言的周边体系并不像 Java、PHP 或 Perl 那样丰富。因此,您能找到的有关该语言的框架、信息库、书籍、Web 站点、网志和其他资源也相对较少。 David Heinemeier Hanson 提出了 Rails 框架(Ruby 历史上最受欢迎的应用程序)后,Ruby 社区的软弱无力的市场表现近期发生了变化。Rails 将 Ruby 编程语言扩展为域特定的语言,特别适合 Web 开发。它还使用了另一种语言扩展ActiveRecord,使 Ruby 具有对象关系持久性。除了不支持组合主键和两阶段提

Pycharm简单使用教程netica简单使用教程

Pycharm 简单使用教程netica 简单使用教程pycharm 是Jetbrains 家族中的一个明星产品,Jetbrains 开发了许多好用的器 包括: Java 器( IntelliJ IDEA ) JavaScript 器( WebStorm) PHP 器( PHPStorm) Ruby 器( RubyMine) C 和C++ 器( CLion) .Net 器( Rider ) iOS/macOS 器(AppCode 等等。 pycharm 现在在官网是分为两个版本,第一个版本是「Professional( 专业版本) 」,这个版本功能更加强大,主要是为

Python 和web 开发者而准备,是需要付费的。第二个版本是「社区版」,一个专业版的阉割版,比较轻量级,主要是为Python 和数据专家而准备的。一般我们做开发,下载专业版本比较合适。 把resources_zh.jar 拷贝到PyCharm的安装目录下的lib目录, 重启Pycharm即可。(resources_zh.jar 汉化包关注本账号获取) 在文件-> 设置->:xxx下找到Project Interpreter 。然后修改为你需要的Python 解释器。注意这个地方一定要注意的是:在选择Python 解释器的时候,一定要选择到python.exe 这个文件,而不是python 的安装文件夹。 如何创建一个Python 包 一定要选择Python Package ,不然就不会创建一个__init__.py 文件。 在显示行号的地方右键,勾选上显示行号 设置->Plugi ns->Browse repositories ,然后输入你要安装的插

学习一门新语言的步骤!

如果你遵循以下这些步骤,就可以快速“学会所有的编程语言”。 第一步:理解这门语言的设计理念和通用的语言特性 例如,如果你要学Ruby,那就先看一下Ruby 有什么特别的? Ruby 是一门开源的动态编程语言,专注易用性和效率。它的语法很优雅,代码读起来很自然,写起来也很自然。 让我们更深入地看一下: 那么,在学习Ruby 之前,需要了解的重点是: Ruby 专注于易用性和效率,代码容易阅 Ruby 是解释执行的,所以使用了GC,也就是说对于某些任务,性能可能会是个问题;在Ruby 中,所有东西都是对象,所以它是面向对象编程语言,而且是纯面向对象的;Ruby 很灵活,我们可以重新定义它的一些东西。 了解这门语言最重要的特性,包括它的优点和不足。 第二步:通过教程或书籍学习语法和最佳实践 在第二步,你需要掌握语法、基本的IO、调试工具和单元测试。 如果你刚开始学习编程,最好找那种“权威指南”之类的书籍,比如语言作者写的书,或者在网上书店搜索这门编程语言,找到好评如潮的书。 如果你是个编程老手,只需要找一些简单的指南或示例代码就可以了,可以看看这个。 记住,在学习语法时,你需要动手写代码,不要只是拷贝黏贴。你可以在这个网站上练习写代码,有人会审阅你的代码,并免费为你提供建议。 第三步:使用新学的语言写更多的代码 现在,你需要使用新学的语言开始一个项目,包括与这门语言有关的生态系统、工具和库。你可以从简单的开始,比如一个猜数字小游戏、简单的网上书店或者TODO 应用程序。在

GitHub 上可以找到很多类似的项目。 第四步:了解语言的实现细节 这一步并非都是必需的。不过,有追求的程序员对编程语言的实现细节会感兴趣。有时候,因为对编程语言的实现细节不是很了解,容易写出bug。

ruby安装配置教程详解

Ruby On Rails安装配置详解(WINDOWS) Windows系统下开发环境的搭建 本文中将介绍如何在Windows操作系统下搭建RoR开发环境。 1.远程安装 a、步骤1:下载并安装Ruby一键安装包 下载最新的Ruby 1.8.4-16一键安装包,其下载地址为https://www.360docs.net/doc/3912571331.html,/ projects/rubyinstaller/。 下载后运行该安装文件,显示界面如图2-1所示。 图1 安装程序运行界面 一直单击Next按钮默认安装即可。安装完成后打开命令行窗口,输入并运行命令ruby –v,安装成功会显示Ruby的版本号,如图2-2所示。 图2 Ruby的版本信息 接下来需要配置ClassPath,在环境变量中新增环境变量名"RUBY_HOME",变量值"D:\ruby",该值以本机Ruby安装目录为准。然后在path 加入"%BURY_HOME%\bin"。 测试Ruby是否安装成功 在命令行下运行ruby -v ,显示如下: ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] 如果不放心,再运行ruby -e 'puts "hello world"' ,显示如下: hello world 至此,Ruby的安装告一段落,接下安装Rails。

安装Rails之前需要按顺序安装以下模块: gem install activesupport gem install activerecord gem install actionpack gem install actionmailer gem install actionwebservice(简称aws) 最后才是rails b、步骤2:使用RubyGems安装Rails RubyGems是标准的Ruby包管理器,它的功能类似于Linux下的apt-get。使用RubyGems可以方便地从远程服务器下载并安装Rails。 打开命令行窗口,输入并执行命令gem install rails --remote或gem install rails-- include-dependencies,程序运行结果分别如图3和图4所示。 图3 命令执行过程中 图4 命令执行过程中 打开命令行窗口输入并运行rails –v,执行结果如图2-5所示。 图5 Rails的版本信息 显示的Rails版本为1.0.0,Rails安装成功,即RoR开发环境搭建成功。 注意使用gem install rails - -remote安装Rails,是直接从远程服务器下载Rails安装包文件;而使用gem install rails - -include-dependencies命令安装Rails,会首先在本地主机上寻找是否存在Rails 的安装包,如果没有则从远程服务器下载安装。 2.本地安装 a、步骤1:下载并安装Ruby一键安装包 具体步骤请参见“远程安装”部分。 b、步骤2:获取Rails安装插件包

Pycharm简单使用教程

Pycharm简单使用教程 Pycharm简单使用教程 1.Jetbrains 家族和Pycharm 版本划分:pycharm 是Jetbrains 家族中的一个明星产品,Jetbrains开发了许多好用的编辑器 包括: Java 编辑器(IntelliJ IDEA) JavaScript 编辑器(WebStorm) PHP 编辑器(PHPStorm) Ruby 编辑器(RubyMine) C 和 C++ 编辑器(CLion) .Net 编辑器(Rider) iOS/macOS 编辑器(AppCode)等等。 pycharm 现在在官网是分为两个版本,第一个版本是「Professional(专业版本)」,这个版本功能更加强大,主要是为Python 和 web 开发者而准备,是需要付费的。第二个版本是「社区版」,一个专业版的阉割版,比较轻量级,主要是为 Python 和数据专家而准备的。一般我们做开发,下载专业版本比较合适。 2、汉化:把resources_zh.jar拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。(resources_zh.jar汉化包关注本账号获取)

3、整体结构: 4、常用功能介绍:(1)如何更换Python解释器:在文件->设置->项目:xxx下找到Project Interpreter。然后修改为你需要的Python解释器。注意这个地方一定要注意的是:在选择Python解释器的时候,一定要选择到python.exe这个文件,而不是python的安装文件夹。 (2)如何创建一个Python包:如何创建一个Python包一定要选择Python Package,不然就不会创建一个__init__.py 文件。 (3)如何创建不同类型的文件:(4)如何新建一个项目:(5)如何调整编辑器字体及其大小:(6)如何调整控制台的字体及其大小:(7)如何设置文件编码:(8)如何修改文件背景颜色:(9)如何让一个tab键代替4个空格键:(10)如何自定义Python模版文件:(11)显示行号:在显示行号的地方右键,勾选上显示行号。(12)如何安装插件:设置->Plugins->Browse repositories,然后输入你要安装的插件。 (13)复制文件路径:右键->copy path。(14)在文件管理器中打开:右键->Show In Explorer。(15)进入到某文件中:把光标放在单词中间,然后按ctrl+b或者按ctrl键+鼠标左键。(16)查看项目结构:(17) DEBUG:(19)常用快捷键:* ctrl+d:复制当前行到下一行。 * ctrl+y:删除当前这一行。 * shift+enter:跳到下一行。

Sutool使用教程

速图Sutool使用教程 速图Sutool是有国内达人WIKII(郑州大学建筑系老师)开发的鼎力插件,同样是目前草图大师(Google Sketchup)软件中最好的插件管理器。插件管理器历经五年的开发,由原来简单的功能,逐步升级到Sutool2012_zip智能版本,其中凝结了WIKII的无限创意,每一次更新都令人惊喜。虽然速图越来越成熟了,几乎已经完美达到我们想要管理插件的所有要求了,但是这个曾经有过商业版经历的插件,他的主人在这个完美的时刻选择了免费共享给各位设计师。作为五年来的忠实测试员,我见证了整个历程,所以我们要感谢他的付出和努力。 一、速图Sutool功能: 1、用于管理sketchup中插件,加速SU快速启动,避免 插件之间的冲突。 2、智能化分析和安装插件,无须学习Ruby语言。 3、实现插件的分类分层级管理,更加条例逻辑,适合不 同专业DIY定制。 4、实现插件的深度汉化(包括菜单、右键菜单、对话框、 状态栏提示等) 5、实现实时工具栏生成与取消,可定制常用工具栏。 6、实现插件可以使用快捷键调用

7、插件使用方法帮助的提示 二、速图Sutool2012_zip版本新特性: 1、SUTool2012采用更高效快速的插件读取方式,安装过程不超过30秒,读取所有插件的过程瞬间完成,采用本插件管理器将会更高效地使您的SketchUp桌面最大化并且开启速度最优化。请您记住无论您安装多少的插件,都不会影响您开启SketchUp的速度和占用您宝贵的工作界面。另外由于是外置插件管理器,所以不会产生任何由于您DIY自己定义插件目录而使的SketchUp程序产生崩溃的情形出现。 2、最核心的内容是采用ZIP格式储存和读取插件并且可以自动安装插件(无需解压缩),其中的ZIP压缩格式SUTool2012可以自动解压缩并且全自动安装插件。 3、SUTool2012新版本所有ZIP格式插件都会自动出现在编辑面板,这个仅仅需要将ZIP插件放到SUTool2012的ZIP 文件夹即可。点击列表中的插件即可完成插件分析,您可以添加插件作者的信息、插件版本信息、加入分类面板等。 4、SUTool2012新版本进行最重要的插件核心更新,插件随时汉化支持rbs,以后您无需手动修改rb文件来实现汉化了,SUTool2012将会通过汉化面板帮您自动汉化rb内需要汉化的内容。 5、SUTool2012新版本其他常见功能中的历史命令的调用、

Ruby on Rails 之 Oracle 应用:简易教程

Ruby on Rails 之Oracle 应用:简易教程 您可能听说过 Ruby on Rails,一个似乎正以狂风暴雨之势席卷 Web 开发社区(尤其是 JEE 和 PHP 的编程人员)的新应用框架。 Rails 是功能强大的 Web 应用平台,而且深受 JEE 和 PHP 的编程人员的喜爱。当您了解了 Rails 的优势后,您就会理解它为何对 J2EE 和 PHP 编程人员有如此的吸引力。首先,它使用任何自视甚高的设计模式专家都很钦佩的严格的模型-视图- 控制器体系结构;这可以解释它为什么吸引了大量 JEE 开发人员。其次,使用 Rails 可以轻松地构建基本系统—这对 PHP 开发人员具有吸引力。 然而,从数据库的角度来说,Rails 还是有一些非常大的局限性。Rails 对您的数据库布局和应用程序需求做出了许多假定。例如,Rails 假定所有表都使用单一的非组合式主键。需通过Rails 插件支持组合式主键。此外,Rails 支持多数据库而且可以对其间事务进行协调;Rails 不支持两阶段提交。

本文章的目的不在于对 Rails 进行赞扬或批评,而只是对该技术的介绍。其中包含表扬也包含有批评。有时批评可能看起来过重了(尤其对于那些 Rails 的热爱者来说),但是请不要将 Rails 看得神乎其神。使用任何 Web 应用框架都是需要技巧的,无论是 JEE、https://www.360docs.net/doc/3912571331.html, 还是 PHP。从长远来看,使用 Rails 可能比使用许多其他 Web 应用程序开发平台更高效,但是也需要假以时日来学习其中的技巧。 Ruby 是什么?Rails 是什么? Ruby 是一种动态编程语言,在很多方面和 Perl、Python 以及 Smalltalk 相似,但也有自己的特点。Java 和 PHP 编程人员似乎可以非常轻松地学会该语言,而且他们是 Ruby 的最忠实的拥护者。但是其他人也为该语言所吸引;这其中还包括著名的Microsoft 王国中最资深的专家之一 Don Box。 Ruby 并不是新生事物;它创建于 1993 年,时间比 1995 年发布的 Java 或 PHP 都要久。当时 Ruby 语言虽已成熟,但不如某些其他语言受欢迎。因此,Ruby 编程语言的周边体系并不像 Java、PHP 或 Perl 那样丰富。因此,您能找到的有关该语

Sliverlight教程

Silverlight教程第一部分:使用Silverlight2和VS2008创建“Hello World”程序 这是8个系列教程的第一部分,这系列示范如何使用Silverlight2的Beta1版本建造一个简单的Digg客户端应用。这些教程旨在按顺序阅读,帮着解释Silverlight的一些核心编程概念。 使用VS2008创建一个新的Silverlight应用 我们来开始我们的Digg应用的开发,先选择Visual Studio2008中的文件->新项目菜单项,使用新项目对话框创建一个“Silverlight Application”(注:你需要在Beta1发布后,下载和安装VS2008的Silverlight工具才能得到这个支持): 我们将该项目命名为“DiggSample”。在点击OK按钮后,Visual Studio会显示另外一个对话框,允许我们选择我们是否只要创建一个Silverlight应用项目,或者还要加一个服务器端的https://www.360docs.net/doc/3912571331.html, Web项目到包含Silverlight应用的解决方案里去:

在这个例程里,我们将选择还要添加一个https://www.360docs.net/doc/3912571331.html, Web Application项目到解决方案里去,并将它命名为“DiggSample_WebServer”。在点击OK之后,Visual Studio会为我们创建一个解决方案,里面包含一个Silverlight客户端应用和一个https://www.360docs.net/doc/3912571331.html, web服务器端应用: 如果我们做一次编译的话,Visual Studio会自动把编译好的Silverlight应用拷贝到我们的web服务器项目中去,不需要手工的步骤或配置。VS为我们创建的默认的web服务器项目包含一个https://www.360docs.net/doc/3912571331.html,网页和一个静态的HTML网页,我们可以用来运行和测试其中的Silverlight应用。

thrift入门学习教程

Thrift是什么? Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如:C++,C#,Cocoa,Erlang,Haskell, Java,Ocami,Perl,PHP,Python,Ruby,Smalltalk.在多种不同的语言之间通信thrift 可以作为二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。Thrift适用于程序对程序静态的数据交换,需要先确定好他的数据结构,他是完全静态化的,当数据结构发生变化时,必须重新编辑IDL文件,代码生成,再编译载入的流程,跟其他IDL工具相比较可以视为是Thrift的弱项,Thrift适用于搭建大型数据交换及存储的通用工具,对于大型系统中的内部数据传输相对于JSON和xml无 论在性能、传输大小上有明显的优势。 Thrift是IDL(interface definition language)描述性语言的一个具体实现,关于IDL 的话题我们可以追溯到CORBA盛行1999-2001年(Common Object Request Broker Architecture/公用对象请求代理体系结构),在IDL中我们似乎不会忘记到这几个关键字:module、interface、string、long和int,我还记得IDL利用module 来创建名称空间,并且准确地映射为Java的package,这些特性几乎和现在thrift 的特性完全相同,所以thrift的设计思想和理念绝不是什么从火星来的new idea,看看在那个CORBA盛行的年代人们提出的概念,如图所示CORBA请求的各个部分,回头我们再与thrift进行对比一下:

sketchUP Ruby模块

sketchUP Ruby模块 几乎所有的SketchUp开始都会访问三种基本的数据结构:SketchUp,Model和Entities。一旦当你明白他们运行原理,你就可以开始使用代码来进行SketchUp设计了。 SketchUp模块 不像上一章描述的对象和类,我们遇到的第一种数据结构是SketchUp,它是一个模块,后面我们将讨论模块的详细细节,现在我们仅仅只要明白模块就是包括一系列的方法就可以了。在我们的教程中Ruby脚步都会调用这个模块的方法。 SketchUp模块的方法访问属性涉及到SketchUp整个应用。查看它如何运行,我们打开Ruby控制台执行下面的代码命令: Sketchup.version 将会显示SketchUp的当前版本,我们也可以输入Sketchup.os_language查看当前的语言或者使用Sketchup.get_locale查看应用的安装路径。如果想查看所有的方法可以使用:Sketchup.methods 其中最重要的一个方法是active_model,该方法返回当前我们所有的设计模型对象,下面是代码的使用实例: mod = Sketchup.active_model 代码说明:首先会检索当前的模型对象,然后设置mod等于模型对象。 模型对象 前面说了Sketchup模块达标了整个SketchUp整个应用,Model对象就代表了一个独立的SketchUp文件(*.skp),更准确的说是所有文件中的设计信息。当我们在SketchUp中

打开一个文件时,所有的Sketchup模块的属性都是相同的,但是在活动的Model对象中都是一样的。 Model类中的方法提供关于当前设计的所有信息。例如modified? 方法是用来检测最后一次保存的文件是否有修改过。下面是使用实例: mod = Sketchup.active_model mod.modified? 还有title方法返回当前设计的标题,description方法返回当前的文本描述,path方法返回当前设计文件的路径。还有一系列关于Model类的方法。 在我们的教程,Model类方法我们大都使用来访问当前设计的对象容器。我们可以把Model 当作橱柜中的柜子: 一个对象包括了许多的子对象,子对象又包括许多的对象。下面的图标显示了Model对象以及它包括的对象: 对象Model有六个容器,我们可以配置几乎所有SketchUp设计样式。我们需要使用相应的方法来使用它们。下面是它的六个容器的介绍: 1. entities- 返回当前一个Entities(实体)对象,包括了当前设计中的所有图形 2. layers- 返回当前一个Layers(层)对象,包括了当前设计中的所有图形

JQuery入门、手册及教程

浅谈JQUREY(摘自https://www.360docs.net/doc/3912571331.html,/softwave/article/details/2070815) JQUERY手册(第七页,附教程) Jquery是继prototype之后又一个优秀的Javascript框架。对prototype我使用不多,简单了解过。但使用上jquery 之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery:prototype就像Java,而jquery 就像ruby.实际上我比较喜欢java(少接触Ruby罢了)但是jquery的简单的实用的确有相当大的吸引力啊!在项目里我把jquery作为自已唯一的框架类包。使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。 一,找到你了! 还记得$()这个东西吧?prototype还是DWR都使用了这个函数代替document.getElementById()。没错,jquery也跟风了。为达到document.getElementById()的目的,jquery是这样写的: Java代码 1.var someElement = $("#myId"); [java]view plaincopyprint? 1.var someElement = $("#myId"); 看起来比其他两个框架的要多了一个#,好,看看下面的用法: Java代码 1.$("div p");(1) 2.$("div.container")(2) 3.$("div #msg");(3)

[java]view plaincopyprint? 1.$("div p");(1) $("div.container")(2) $("div #msg");(3) $("table a",context);(4) 在prototype里看过这样的写法吗?第一行代码得到所有

标签下的元素。第二行代码得到class 为container的
元素,第三行代码得到
标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。 如果你熟悉CSS,Xpath,你会觉得这些写法很眼熟!对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。 二,Jquery对象? jquery提供了很多便利的函数,如each(fn),但是使用这些函数的前提是:你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单,通过下面一些方式(只是一部分): Java代码 1.var a = $("#cid");(1) 2.var b = $("hello ");(2) 3.var c = document.createElement("table"); var tb = $(c); [java]view plaincopyprint? 1.var a = $("#cid");(1) var b = $("hello ");(2) var c = document.createElement("table"); var tb = $( c); 三,代替body标签的onload 这个惯例,也许是除了$()之外,用得最多的地方了。下面一段代码: Java代码

相关主题