ruby 不可以通过+拼接字符串吗

Python013

ruby 不可以通过+拼接字符串吗,第1张

发现如果要把两个字符串连接在一起。如

a = “abc”

b = a + “de”

此时b的值为”abcde”

但如果a = nil时,就会抛出未定义“+”的异常,因为此时a为nil。但如果我们改变一下b右边的表达式,将其改为b = “#{a}de”。这时就不会抛出错误了,此时b=>“de”。

向字符串末尾追加字符时, 使用 String#concat 或 <<运算符(String#<<)

s = 'abc'

s.concat('def')

p s #=>"abcdef"

s = 'abc'

s <<'def'

p s #=>"abcdef"

<<运算符还可以有以下的写

s = ''

s <<'abc' << 'def'

p s #=>"abcdef"

直接写入数据库就好了,写一个读写mysql的类文件接口,然后调用操作。具体如下,我调试过的。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

require 'mysql'

class MysqlDb

# attr_accessor :host, :user, :pass, :database

def open(host=nil, user=nil, pass=nil, database=nil,port=3306)

@host =host

@user = user

@pass = pass

@database = database

@port = port

begin

@connection = Mysql.new(@host, @user, @pass, @database, @port)

rescue

puts "connect faild! an error has occurred: #{$!}" # 错误信息保存在特殊变量$!中。

try_again

end

end

def try_again

puts '------------------try again, if not modify, leave a blank---------------'

print "host: "

host=STDIN.gets.strip

@host = check_value(host,@host)

puts "---------------current host: #{@host}"

print "user: "

user =STDIN.gets.strip

@user = check_value(user,@user)

puts "---------------current user: #{@user}"

print "password: "

pass =STDIN.gets.strip

@pass = check_value(pass,@pass)

puts "---------------current password: #{@pass}"

print "database: "

database =STDIN.gets.strip

@database = check_value(database,@database)

puts "---------------current database: #{@database}"

print "port: "

port =STDIN.gets.strip

@port = check_value(port,@port)

open(@host, @user, @pass, @database, @port)

puts "---------------current port: #{@port}"

end

def check_value(value,returnvalue)

if value == ""

nil

else

returnvalue = value

end

return returnvalue

end

def iquery(sql)

field = []

@connection.query(sql).each do |data|

field <<data

end

field.to_a

end

def iexecute(sql)

@connection.query(sql)

end

def close

@connection.close

end

end

# useages

adb = MysqlDb.new

adb.open('127.0.0.1','root','zyq001122','hello_z','3307')

# result = db.query "insert into user value(7,\"lilY\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )" # 插入记录

# result.each {|row| puts row}

num_of_records = adb.iquery ('select count(*) from user') #查询

puts num_of_records

#sql = "insert into user value(10,\"Hello-Kitty\",\"256y42\",\"#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}\" )"# 数据操作

# sql = 'update user set name=\'jackjhons\' where uid=5 ' # 更新一条记录

#adb.iexecute(sql)

# adb.close

因为ruby适用范围较窄。

Ruby明显比其他类似的编程语言年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。

在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数变量没有类型,Ruby的变量可以保存任何类型的数据。任何东西都有值,不管是数学或者逻辑表达式还是一个语句,都会有值。ruby语言很优雅,可以做到不需要注释就可以读懂。

ruby语言特点:

Ruby 是开源的,在Web 上免费提供,但需要遵守开源软件协议。

Ruby 是一种通用的、解释的编程语言。

Ruby 是一种真正的面向对象编程语言。

Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。

Ruby 可以用来编写通用网关接口(CGI)脚本。

Ruby 可以被嵌入到超文本标记语言(HTML)。

Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。