详解Ruby语言中的注释用法与中文编码问题
Ruby 注释
注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行。您可以在行首使用字符( # ):
# 我是注释,请忽略我。
或者,注释可以跟着语句或表达式的同一行的后面:
name = "Madisetti" # 这也是注释
您可以注释多行,如下所示:
# 这是注释。 # 这也是注释。 # 这也是注释。 # 这还是注释。
下面是另一种形式。这种块注释会对解释器隐藏 =begin/=end 之间的行:
=begin 这是注释。 这也是注释。 这也是注释。 这还是注释。 =end
Ruby 中文编码
用 Ruby 输出 "Hello, World!",英文没有问题,但是如果你输出中文字符"你好,世界"就有可能会碰到中文编码问题。
Python 文件中如果未指定编码,在执行过程会出现报错:
#!/usr/bin/ruby -w puts "你好,世界!";
以上程序执行输出结果为:
invalid multibyte char (US-ASCII)
以上出错信息显示了 Ruby 使用用 ASCII 编码来读源码,中文会出现乱码,解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*-(EMAC写法) 或者 #coding=utf-8 就行了。
实例
#!/usr/bin/ruby -w # -*- coding: UTF-8 -*- puts "你好,世界!";
输出结果为:
你好,世界!
所以如果大家再学习过程中,源代码文件中,若包含中文编码,则需要注意两点:
1. 必须在首行添加 # -*- coding: UTF-8 -*-,告诉解释器使用utf-8来解析源码。
2. 必须设置编辑器保存文件的编码为utf-8。
相关推荐
-
Ruby在cmd下中文显示乱码以及不支持OpenSSL的问题解决
中文乱码解决办法 cmd下中文不能输入 将cmd代码页改成936: chcp 936 ruby 读取中文强制设置为utf-8 可以在文件中加一个注释语句 # encoding: UTF-8,ruby就会用utf-8格式载入 cmd输出乱码 这个解决不掉, 我看到有人用了一个第三方库来解决输出 require 'iconv' cov = Iconv.new( 'gbk', 'utf-8') puts cov.iconv("北京奥运会!") PS: Ruby程序中,最好不要出现中文,注释除
-
详解Ruby语言中的注释用法与中文编码问题
Ruby 注释 注释会对 Ruby 解释器隐藏一行,或者一行的一部分,或者若干行.您可以在行首使用字符( # ): # 我是注释,请忽略我. 或者,注释可以跟着语句或表达式的同一行的后面: name = "Madisetti" # 这也是注释 您可以注释多行,如下所示: # 这是注释. # 这也是注释. # 这也是注释. # 这还是注释. 下面是另一种形式.这种块注释会对解释器隐藏 =begin/=end 之间的行: =begin 这是注释. 这也是注释. 这也是注释. 这还是注释.
-
详解C语言中结构体(struct)的用法
目录 粉丝问答 三种结构体类型变量说明 1. 先定义结构,再定义结构变量 2. 定义结构体类型的同时说明变量 3. 直接说明结构变量 结构体成员表示方法 结构体指针做参数 结构体初始化 定义变量的同时初始化 先定义在初始化 常用初始化 typedef与struct 前置声明 结构体对齐 粉丝问答 有个粉丝在群里问了这样一个问题,问题在图中已经标出,如下图. DQuestsion 头文件的结构体的定义为: typedef struct{ u8 bmRequestType; u8 bRequest;
-
详解Go语言中关于包导入必学的 8 个知识点
1. 单行导入与多行导入 在 Go 语言中,一个包可包含多个 .go 文件(这些文件必须得在同一级文件夹中),只要这些 .go 文件的头部都使用 package 关键字声明了同一个包. 导入包主要可分为两种方式: 单行导入 import "fmt" import "sync" 多行导入 import( "fmt" "sync" ) 如你所见,Go 语言中 导入的包,必须得用双引号包含,在这里吐槽一下. 2. 使用别名 在一些场
-
详解R语言中生存分析模型与时间依赖性ROC曲线可视化
R语言简介 R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. 人们通常使用接收者操作特征曲线(ROC)进行二元结果逻辑回归.但是,流行病学研究中感兴趣的结果通常是事件发生时间.使用随时间变化的时间依赖性ROC可以更全面地描述这种情况下的预测模型. 时间依赖性ROC定义 令 Mi为用于死亡率预测的基线(时间0)标量标记. 当随时间推移观察到结果时,其预测性能取决于评估时间 t.直观地说,在零时间测量的标记值应该
-
详解R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型
在标准线性模型中,我们假设 .当线性假设无法满足时,可以考虑使用其他方法. 多项式回归 扩展可能是假设某些多项式函数, 同样,在标准线性模型方法(使用GLM的条件正态分布)中,参数 可以使用最小二乘法获得,其中 在 . 即使此多项式模型不是真正的多项式模型,也可能仍然是一个很好的近似值 .实际上,根据 Stone-Weierstrass定理,如果 在某个区间上是连续的,则有一个统一的近似值 ,通过多项式函数. 仅作说明,请考虑以下数据集 db = data.frame(x=xr,y=y
-
详解R语言中的表达式、数学公式、特殊符号
在R语言的绘图函数中,如果文本参数是合法的R语言表达式,那么这个表达式就被用Tex类似的规则进行文本格式化. y <- function(x) (exp(-(x^2)/2))/sqrt(2*pi) plot(y, -5, 5, main = expression(f(x) == frac(1,sqrt(2*pi))*e^(-frac(x^2,2))), lwd = 3, col = "blue") library(ggplot2) x <- seq(0, 2*pi, b
-
详解C语言中不同类型的数据转换规则
不同类型数据间的混合运算与类型转换 1.自动类型转换 在C语言中,自动类型转换遵循以下规则: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换按数据长度增加的方向进行,以保证精度不降低.如int型和long型运算时,先把int量转成long型后再进行运算 a.若两种类型的字节数不同,转换成字节数高的类型 b.若两种类型的字节数相同,且一种有符号,一种无符号,则转换成无符号类型 ③所有的浮点运算都是以双精度进行的,即使是两个float单精度量运算的表达式,也要先转换成double
-
详解C语言中二分查找的运用技巧
目录 基础的二分查 查找左侧边界 查找右侧边界 二分查找问题分析 实例1: 爱吃香蕉的珂珂 实例2:运送包裹 前篇文章聊到了二分查找的基础以及细节的处理问题,主要介绍了 查找和目标值相等的元素.查找第一个和目标值相等的元素.查找最后一个和目标值相等的元素 三种情况. 这些情况都适用于有序数组中查找指定元素 这个基本的场景,但实际应用中可能不会这么直接,甚至看了题目之后,都不会想到可以用二分查找算法来解决 . 本文就来分析下二分查找在实际中的应用,通过分析几个应用二分查找的实例,总结下能使用二分查
-
详解Go语言中的数据类型及类型转换
目录 1.基本数据类型 2.基础数据类型转换 3.基本数据类型转为字符串 4.strconv的使用 5.字符串转为基础类型 1.基本数据类型 数据类型有很多,先研究一下基础的,例如:布尔型.数字类型.字符串类型. 数字类型有uint8.uint16.uint32.uint64.int8.int16.int32.int64(uint和int区别在于uint为无符号整数,即只支持正数,不支持负数形式) 数字浮点型有fload32.float64.complex64.complex126(后面两个均为
-
详解Go语言中的作用域和变量隐藏
目录 前言 包隐藏 全局变量 类型强制 闭包 := 的情况 总结 前言 变量隐藏在 Go 中可能会令人困惑,让我们尝试弄清楚. package main import ( "fmt" "io/ioutil" "log" ) func main() { f, err := ioutil.TempFile("", "") if err != nil { log.Fatal(err) } defer f.Clos
随机推荐
- IOS判断字符串是不是纯数字的方法总结
- VMware 12中CentOS 6.5 64位安装配置教程
- ThinkPHP 防止表单重复提交的方法
- JQuery实现自定义对话框的代码
- jquery validation验证身份证号,护照,电话号码,email(实例代码)
- AngulerJS学习之按需动态加载文件
- Win Vista操作系统安全性能剖析
- 详解Java的Hibernate框架中的缓存与二级缓存
- Asp.net SignalR创建实时聊天应用程序
- MySQL中事务概念的简洁学习教程
- Docker使用Link在容器之间建立连接
- jsp和servlet的区别探讨
- ubuntu16.04服务器配置ssh免密码登录
- js检测判断日期大于多少天的方法
- Android开发获取短信的内容并截取短信
- Python基于pillow判断图片完整性的方法
- Android中简单的电话管理与短信管理App编写实例
- 千兆网线的做法,千兆水晶头的做法
- php表单处理操作
- 对Python中DataFrame按照行遍历的方法