⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00 - introduction

📁 O Reilly Ruby Cookbook source code
💻
字号:
require 'example'e = Example::Class.newe.print_string("Hello World\n")# Hello World#---# example.rbmodule Example  class Class    def print_string(s)      print s    end  endend#---#include <ruby.h>#include <stdio.h>static VALUE rb_mExample;static VALUE rb_cClass;static VALUEprint_string(VALUE class, VALUE arg){  printf("%s", RSTRING(arg)->ptr);  return Qnil;}voidInit_example(){  rb_mExample = rb_define_module("Example");  rb_cClass = rb_define_class_under(rb_mExample, "Class", rb_cObject);  rb_define_method(rb_cClass, "print_string", print_string, 1);}#---# extconf.rbrequire 'mkmf'dir_config('example')create_makefile('example')#---$ ls example.c  extconf.rb$ ruby extconf.rbcreating Makefile$ makegcc -fPIC -Wall -g -O2  -fPIC  -I. -I/usr/lib/ruby/1.8/i486-linux   -I/usr/lib/ruby/1.8/i486-linux -I.   -c example.cgcc -shared  -L"/usr/lib" -o example.so example.o  -lruby1.8    -lpthread -ldl -lcrypt -lm   -lc$ lsMakefile  example.c  example.o  example.so  extconf.rb#---require 'example'e = Example::Class.newe.print_string("Hello World\n")# Hello World#---static VALUEwrite_string(VALUE object, VALUE str){  if (rb_respond_to(object, rb_intern("<<")))  {     rb_funcall(object, rb_intern("<<"), 1, str);  }  return Qnil;}#---def write_string(object, str)  object << str if object.respond_to?('<<')  return nilend#---

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -