Project1

标题: Ruby提问区 [打印本页]

作者: 冷峻逸    时间: 2015-8-5 21:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: SadSlime    时间: 2015-8-5 21:17
如何说明楼主是煞笔?
作者: 热峻逸    时间: 2015-8-5 21:18
我真想揍你 提问区被你吃了?
作者: 冷峻逸    时间: 2015-8-5 21:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 落雪鸦杀    时间: 2015-8-5 21:37
如何给函数“水”赋值“冷峻逸水的经验”?
作者: 赤炎    时间: 2015-8-5 21:39

该怎么描述沙发是大傻逼?
作者: 斜眼君    时间: 2015-8-5 21:46
本帖最后由 斜眼君 于 2015-8-5 21:52 编辑

如何给冷峻逸赋值为“大傻逼”?
作者: SadSlime    时间: 2015-8-5 23:06
【这回是认真的了】
.rb文件怎么编译成exe可执行文件

作者: LBQ    时间: 2015-8-5 23:09
本帖最后由 LBQ 于 2015-8-5 23:13 编辑

stackoverflow.com

ruby中文论坛

(怎么招都比这个好
作者: 塞巴斯特    时间: 2015-8-6 07:20
本帖最后由 塞巴斯特 于 2015-8-6 09:43 编辑

这种程度的问题XP VX VA随便哪个按F1都可以查到的。

另外水王大人如果是上进心燃烧了起来,不是为了水贴而是真想搞什么技术整合的话,请不要无视技术区的置顶帖。尽管置顶帖经常被无视

致各位想要学习研究 Ruby(RGSS) 的人 https://rpg.blue/thread-217670-1-1.html
上述地址里就有禾西这个丧尸大人发的Ruby笔记 https://rpg.blue/thread-69312-1-1.html



吹毛求疵什么的最喜欢了
反正只是水贴而已有什么关系
“表达式和表达式之间以分号(;)或换行分开。” —— 《RPG Maker XP (工程按下F1) - RGSS参考 - Ruby的语法 - 字句构造和表达式》



且不说【给函数“水”赋值“冷峻逸水的经验”】是不是这么写
def 水 "冷峻逸水的经验" end这么一段话放进脚本里只能是喜闻乐见的——
脚本'我怎么知道这是什么脚本'的 ? 行 发生了 SyntaxError。

正确使用姿势: def 水 ; "冷峻逸水的经验" ; end

话说人家是要把“冷峻逸水的经验”赋值给函数"水"
你定义个出来个内容是“冷峻逸水的经验”的函数"水"就没下文了闹哪样
作者: taroxd    时间: 2015-8-6 07:34
本帖最后由 taroxd 于 2015-8-6 09:24 编辑

LZ写一个这样的程序吧:
输入一段Ruby代码和这段代码的input,如果这段代码执行后会死循环,输出 true。如果这段代码能正常停止,输出 false。
作者: RyanBern    时间: 2015-8-6 08:34
楼上的太难了
LZ写一个这样的程序吧:
输入一段Ruby代码,如果这段代码里面的end不多也不少,输出true,否则输出false。
作者: KB.Driver    时间: 2015-8-6 09:01
新难题「版主们的リクエスト」
_(:3」∠)_
作者: Password    时间: 2015-8-6 10:35
楼上的都太难了
来个有实际意义的吧:输入一个具体的数学算式(例如18 / 4 或 (4/3) * 2),先判断结果是否是整数或有限小数,是的话直接输出结果,反之输出为最简分数。
作者: 寒冷魔王    时间: 2015-8-6 12:02
本帖最后由 寒冷魔王 于 2015-8-6 12:08 编辑

楼上的都太难了,顺便围观状元卖萌

好吧,就问一个简单的问题
ruby的Array似乎是不连续的。
每次索引求值(包括each)都会产生额外消耗。
C 代码复制
  1. VALUE
  2. rb_ary_each(VALUE array)
  3. {
  4.     long i;
  5.     volatile VALUE ary = array;
  6.  
  7.     RETURN_SIZED_ENUMERATOR(ary, 0, 0, ary_enum_length);
  8.     for (i=0; i<RARRAY_LEN(ary); i++) {
  9.         rb_yield(RARRAY_AREF(ary, i));
  10.     }
  11.     return ary;
  12. }

包括Struct(而且速度还不如Array)
因此才有了Table(RGSS)

于是求助——
怎样在不借助外部的情况下,在Ruby内产生一个连续内存空间的数据结构?
使之可以迅速访问,不产生较多额外消耗?
作者: taroxd    时间: 2015-8-6 18:57
本帖最后由 taroxd 于 2015-8-6 19:47 编辑
寒冷魔王 发表于 2015-8-6 12:02
楼上的都太难了,顺便围观状元卖萌

好吧,就问一个简单的问题


送你个不管越界不检查参数的无责任数组(比原生Ruby Array慢,我会乱说?):

C 代码复制下载
  1. #include <ruby.h>
  2.  
  3. struct my_array {
  4.   size_t size;
  5.   VALUE *ptr;
  6. };
  7.  
  8. static void
  9. my_array_free(void *p) {
  10.   struct my_array *ptr = p;
  11.  
  12.   if (ptr->size > 0)
  13.     free(ptr->ptr);
  14. }
  15.  
  16. static VALUE
  17. my_array_alloc(VALUE klass) {
  18.   VALUE obj;
  19.   struct my_array *ptr;
  20.  
  21.   obj = Data_Make_Struct(klass, struct my_array, NULL, my_array_free, ptr);
  22.  
  23.   ptr->size = 0;
  24.   ptr->ptr  = NULL;
  25.  
  26.   return obj;
  27. }
  28.  
  29. static VALUE
  30. my_array_init(VALUE self, VALUE size) {
  31.   struct my_array *ptr;
  32.   size_t requested = NUM2SIZET(size);
  33.  
  34.   Data_Get_Struct(self, struct my_array, ptr);
  35.  
  36.   ptr->ptr = (VALUE *)malloc(requested * sizeof(VALUE));
  37.   ptr->size = requested;
  38.  
  39.   return self;
  40. }
  41.  
  42. static VALUE
  43. my_array_size(VALUE self) {
  44.   struct my_array *ptr;
  45.  
  46.   Data_Get_Struct(self, struct my_array, ptr);
  47.  
  48.   return SIZET2NUM(ptr->size);
  49. }
  50.  
  51. static VALUE
  52. my_array_get(VALUE self, VALUE index) {
  53.   struct my_array *ptr;
  54.  
  55.   Data_Get_Struct(self, struct my_array, ptr);
  56.  
  57.   return (ptr->ptr)[NUM2LONG(index)];
  58.  
  59. }
  60.  
  61. static VALUE
  62. my_array_set(VALUE self, VALUE index, VALUE value) {
  63.   struct my_array *ptr;
  64.  
  65.   Data_Get_Struct(self, struct my_array, ptr);
  66.  
  67.   (ptr->ptr)[NUM2LONG(index)] = value;
  68.   return value;
  69. }
  70.  
  71. #ifdef __cplusplus
  72. extern "C" {
  73. #endif
  74. __declspec(dllexport)
  75. void
  76. Init_my_array(void) {
  77.   VALUE cMyArray;
  78.  
  79.   cMyArray = rb_const_get(rb_cObject, rb_intern("MyArray"));
  80.  
  81.   rb_define_alloc_func(cMyArray, my_array_alloc);
  82.   rb_define_method(cMyArray, "initialize", my_array_init, 1);
  83.   rb_define_method(cMyArray, "size", my_array_size, 0);
  84.   rb_define_method(cMyArray, "[]", my_array_get, 1);
  85.   rb_define_method(cMyArray, "[]=", my_array_set, 2);
  86. }
  87. #ifdef __cplusplus
  88. }
  89. #endif


RUBY 代码复制
  1. class MyArray; end
  2.  
  3. require_relative 'my_array'
  4.  
  5. a = MyArray.new(2)
  6. a[0] = 1
  7. p a[0]

作者: chd114    时间: 2015-8-6 19:05
taroxd 发表于 2015-8-6 01:57
送你个不管越界不检查参数的无责任数组:

#include

水的好,楼主选择死亡(楼主已经死亡)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1