草庐IT

09python字符串

全部标签

ruby - `class_eval` 字符串中的变量范围是什么?

我正在使用class_eval编写要在当前类的上下文中执行的代码。在下面的代码中,我想为属性值的变化添加一个计数器。classClassdefattr_count(attr_name)attr_name=attr_name.to_sattr_readerattr_name#createtheattribute'sgetterclass_eval%Q{@count=0def#{attr_name}=(attr_name)@attr_name=attr_name@count+=1enddef#{attr_name}@attr_nameend}endendclassFooattr_count

ruby - 你如何字符串化/序列化 Ruby 代码?

我希望能够在我的Ruby代码中编写一个lambda/Proc,将其序列化以便我可以将其写入磁盘,然后稍后执行lambda。有点像……x=40f=lambda{|y|x+y}save_for_later(f)稍后,在单独运行Ruby解释器时,我希望能够说...f=load_from_beforez=f.call(2)z.should==42Marshal.dump不适用于Procs。我知道Perl有Data::Dump::Streamer,而在Lisp中这是微不足道的。但是有没有办法在Ruby中做到这一点?换句话说,save_for_later的实现是什么??编辑:Myanswerbel

ruby - Python 程序员通过学习 Ruby 可以获得什么?

我打算在大学学习Ruby、Haskell和Prolog。现在,我想知道什么应该引起我的大部分注意。我有半年的时间来完成这三门类(class),这意味着我需要选择一种语言来获得我的课外时间。其他我将学习的内容足以在类(class)中做得很好。我对Haskell和Prolog非常熟悉,知道学习它们会教会我一些非常重要的计算机科学概念。我不太确定ruby。通过一些教程和介绍,我觉得ruby​​是很多肤浅的魔法。现在我问ruby​​的人:如果我决定不再使用它,我会得到什么,在我花了半年时间学习它之后,Python还没有教我。虽然我意识到这是一个很有争议的潜在话题,但这个问题并不是为了“证明”r

ruby - (Ruby) 是否有一个函数可以轻松找到字符串中的第一个数字?

例如,如果我输入“ds.35bdg56”,该函数将返回35。是否有类似的预制函数,或者我是否需要遍历字符串,找到第一个数字并查看它有多长去然后返回那个? 最佳答案 >>'ds.35bdg56'[/\d+/]=>"35"或者,既然你确实要求了一个功能......$irb>>deffx;x[/\d+/]end=>nil>>f'ds.35bdg56'=>"35"你真的可以从中获得一些乐趣:>>classString;deffirstNumber;self[/\d+/];end;end=>nil>>'ds.35bdg56'.firstNum

ruby-on-rails - 使用\而不是 + 或 << 来连接这些字符串

我正在使用rubocop基本上清理我凌乱的代码...其中一个错误是:Use\insteadof+or这是为什么?我在Rubydocumentation中找不到它.我为什么要使用\而不是+或? 最佳答案 在Ruby中,文字字符串在遇到时会作为对象分配到内存中。如果连接两个字符串文字,如str="foo"+"bar"你实际上会分配三个String对象:"foo","bar"以及连接的结果(然后由str引用)。如果你这样做,也会发生同样的情况:"foo"在许多情况下,这只是轻微的低效率,您不必太担心。但是,请注意,如果您在循环中执行此操作

ruby - 在 Ruby 中将唯一的种子字符串转换为随机但确定的浮点值

我在概念上遇到了困难。基本上,我需要接受一些任意的唯一字符串,并能够将其转换为规范化的浮点值。输出浮点值是什么并不重要,只要相同的字符串输入总是产生相同的规范化浮点输出即可。所以这是一个哈希算法,对吗?我熟悉SHA1或MD5,这似乎类似于密码散列,正确密码的结果相同。但是我相信那些方法会输出字符串。我没有得到的是如何将SHA1或MD5的结果转换为一致的浮点值。#Goaldefstring_to_float(seed_string)#...endstring_to_float('abc-123')#=>0.15789string_to_float('abc-123')#=>0.15789

ruby - 如何打印 unicode 字符 U-1F4A9 'pile of poo' 表情符号

我正在尝试在Ruby中打印一个unicode字符,特别是一堆便便。它的unicode值为U-1F4A9。但是当我尝试将“\u1F4A9”打印到输出或文件时,我什么也没看到。我是否需要打印到特定类型的文件才能看到一堆便便?如果是这样,什么类型的文件?有没有办法将其打印到公共(public)输出?(我正在使用Rubymine) 最佳答案 超过四个十六进制数字的Unicode代码点必须用花括号括起来:puts"\u{1f4a9}"#=>?这方面的文档很少,所以不要因为没有弄明白而难过。大括号语法的一个好处是您可以嵌入多个由空格分隔的代码点

Ruby 只获取/放置字符串?

我是Ruby的新手,目前正在编写一些练习代码,如下所示:puts'Hellothere,Canyoutellmeyourfavouritenumber?'num=gets.chompputs'Yourfavouritenumberis'+num+'?'puts'Wellitsnotbadbut'+num*10+'isliterally10timesbetter!'然而,这段代码只是放置了num变量的十个副本,实际上并没有乘以这个数字,所以我假设我需要让“num”变量成为一个整数?我在这方面没有成功,所以任何人都可以告诉我哪里出错了吗? 最佳答案

ruby - 如何在 Ruby 中删除 4 字节的 utf-8 字符?

由于MySQL的utf8不支持4字节字符,我正在寻找一种方法来检测和消除Ruby字符串中的任何4字节utf8字符。我知道我可以更新我的表以使用utf8m4,但由于一些不可能或所需的解决方案的原因。简单地将字符串编码为ASCII会删除这些字符,但也会删除所有其他非ASCII字符,这并不好。 最佳答案 以下似乎适用于Ruby1.9.3:input.each_char.select{|c|c.bytes.count例如:input="hello\xF0\xA9\xB6\x98world"#includesU+29D98input.each

Ruby - 将整数转换为字符串

在Ruby中,试图打印出String的各个元素给我带来了麻烦。我没有看到每个字符,而是看到了它们的ASCII值:>>a="0123"=>"0123">>a[0]=>48我在网上查看过,但找不到任何方法来恢复原来的“0”。我对Ruby有点陌生,我知道它必须很简单,但我似乎找不到它。 最佳答案 或者您可以将整数转换为其字符值:a[0].chr 关于Ruby-将整数转换为字符串,我们在StackOverflow上找到一个类似的问题: https://stackove