Difference between revisions of "Category:LSL Negative Index/ko"
Nanjido Oh (talk | contribs) (New page: {{Multi-lang}}{{LSL Header/ko}} 음의 색인은 끝에서 시작해서 거꾸로 세어나간다. ''string s = "Hello World"''의 경우, * 색인 0은 'H' (''llGetSubString(s,0,0)'') * ...) |
m (categorized category) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LSL Header/ko|ml=*}}{{LSLC{{#var:lang}}|}} | ||
음의 색인은 끝에서 시작해서 거꾸로 세어나간다. | 음의 색인은 끝에서 시작해서 거꾸로 세어나간다. | ||
Line 17: | Line 17: | ||
integer index = llSubStringIndex(s, "t");//index == -1 | integer index = llSubStringIndex(s, "t");//index == -1 | ||
if(~index)// | if(~index)//(index != -1)와 같지만 조금 더 빠르다. '~'은 비트를 뒤바꾸며 (-1 == all on)이므로 (~-1 == all off)이다. | ||
{ | { | ||
s = llDeleteSubString(s, index, index); | s = llDeleteSubString(s, index, index); | ||
Line 27: | Line 27: | ||
|-valign="top" | |-valign="top" | ||
|width="40%"| | |width="40%"| | ||
''' | '''목록''' | ||
* [[llList2List]] | * [[llList2List/ko|llList2List]] | ||
* [[llDeleteSubList]] | * [[llDeleteSubList/ko|llDeleteSubList]] | ||
* [[llListInsertList]] | * [[llListInsertList/ko|llListInsertList]] | ||
* [[llListReplaceList]] | * [[llListReplaceList/ko|llListReplaceList]] | ||
|width="40%"| | |width="40%"| | ||
''' | '''문자열''' | ||
* [[llGetSubString]] | * [[llGetSubString/ko|llGetSubString]] | ||
* [[llDeleteSubString]] | * [[llDeleteSubString/ko|llDeleteSubString]] | ||
|} | |} | ||
Latest revision as of 05:20, 21 April 2009
음의 색인은 끝에서 시작해서 거꾸로 세어나간다.
string s = "Hello World"의 경우,
- 색인 0은 'H' (llGetSubString(s,0,0))
- 색인 -1은 'd' (llGetSubString(s,-1,-1))
- 색은 -5은 'W' (llGetSubString(s,-5,-5))
음의 색인은 매우 단순하며, LSL은 음의 색인을 양의 색인의 반대 처럼 다룬다.
n_ind를 str의 음의 색인이라 하면 n_ind의 양의 형식은 n_ind + llStringLength(str);
p_ind를 str의 양의 색인이라 하면 p_ind의 음의 형식은 p_ind - llStringLength(str);
이 분류에 속한 함수들과 llListFindList와 llSubStringIndex의 결과들을 활용할 때에는 주의를 기울여야 한다. 해당 함수들은 '찾지 못함'의 결과로 -1을 반환하는데, 이것은 실제로 유효한 색인이지만 원하는 결과값은 아닐 것이다.
<lsl> string s = "Hello World";
integer index = llSubStringIndex(s, "t");//index == -1 if(~index)//(index != -1)와 같지만 조금 더 빠르다. '~'은 비트를 뒤바꾸며 (-1 == all on)이므로 (~-1 == all off)이다. {
s = llDeleteSubString(s, index, index);
} </lsl>
범위 함수
목록 |
문자열 |
복잡한 경우는 범위 함수가 두 개의 색인을 취하면서 색인 범위에 대한 연산자를 가질 때인데, 이 때 시작과 끝에 해당하는 두 매개변수 색인을 갖는다. 여기서 음의 색인은 양의 색인을 거꾸로 돌려놓은 것 처럼 다루어진다.
- 만약 start <= end이면 함수에서 움직이는 색인의 범위는 [start, end].
- 만약 start > end이면 함수에서 움직이는 색인의 범위는 [0, end] + [start, ∞]
다중 색인을 변수길이 문자열, 목록과 함께 사용하면 복잡하게 엉킬 수 있는데, 색인의 방향이 길이에 따라서 역전 될 수도 있다.
이 점을 명심해서 시작점에서 출발하는 색인과 끝점에서 출발하는 색인을 함께 사용할 때 유의해야한다.
<lsl>string bad(string in) {
return llGetSubString(in, 5, -5);
}
bad("Hello World!");//범위 [5, 8]에 해당하는 " Wo"를 반환한다 bad("Hello Cat!");//범위 [5, 5]에 해당하는 " "를 반환한다 bad("Hello !");//범위[0, 2] + [5, 6]에 해당하는 "Hel !"를 반환한다</lsl>
Pages in category "LSL Negative Index/ko"
The following 6 pages are in this category, out of 6 total.