diff --git a/string.c b/string.c index fb03a278d6..52c52ab0b7 100644 --- a/string.c +++ b/string.c @@ -2942,29 +2942,23 @@ rb_str_concat_literals(size_t num, const VALUE *strary) } /* - * Document-method: String#<< - * Document-method: String#concat - * * call-seq: - * str << integer -> str - * str.concat(integer1, integer2,...) -> str - * str << obj -> str * str.concat(obj1, obj2,...) -> str + * str.concat(integer1, integer2,...) -> str * - * Append---Concatenates the given object to str. If the object is an - * Integer, it is considered as a codepoint, and is converted - * to a character before concatenation. Concat can take multiple arguments. - * All the arguments are concatenated in order. + * Concatenates the given object(s) to str. If an object is an + * Integer, it is considered a codepoint and converted + * to a character before concatenation. + + * +concat+ can take multiple arguments, and all the arguments are concatenated + * in order. See String#<<, which takes a single argument. * * a = "hello " - * a << "world" #=> "hello world" - * a.concat(33) #=> "hello world!" - * a #=> "hello world!" + * a.concat("world", 33) #=> "hello world!" * * b = "sn" - * b.concat(b, b) #=> "snsnsn" + * b.concat("_", b, "_", b) #=> "sn_sn_sn" */ - static VALUE rb_str_concat_multi(int argc, VALUE *argv, VALUE str) { @@ -2986,6 +2980,21 @@ rb_str_concat_multi(int argc, VALUE *argv, VALUE str) return str; } + /* + * call-seq: + * str << obj -> str + * str << integer -> str + * + * Append the given object to str. If the object is an + * Integer, it is considered a codepoint and converted + * to a character before being appended. + * + * See String#concat, which takes multiple arguments. + * + * a = "hello " + * a << "world" #=> "hello world" + * a << 33 #=> "hello world!" + */ VALUE rb_str_concat(VALUE str1, VALUE str2) {