Open ima1zumi opened 2 years ago
END
のあとにかけばいいString#split 読み
SPLIT_TYPE_AWK
が何を意味しているのか分からない
split_type_t split_type;
という変数の宣言が何を行っているか分かるtypedef enum {
SPLIT_TYPE_AWK, SPLIT_TYPE_STRING, SPLIT_TYPE_REGEXP, SPLIT_TYPE_CHARS
} split_type_t;
static split_type_t
literal_split_pattern(VALUE spat, split_type_t default_type)
{
rb_encoding *enc = STR_ENC_GET(spat);
const char *ptr;
long len;
RSTRING_GETMEM(spat, ptr, len);
if (len == 0) {
/* Special case - split into chars */
return SPLIT_TYPE_CHARS;
}
else if (rb_enc_asciicompat(enc)) {
if (len == 1 && ptr[0] == ' ') {
return SPLIT_TYPE_AWK;
}
}
else {
int l;
if (rb_enc_ascget(ptr, ptr + len, &l, enc) == ' ' && len == l) {
return SPLIT_TYPE_AWK;
}
}
return default_type;
}