🧯Lua/루아 기초및 문법

Lua 문법정리 - [ 연산자 , 데이터타입 ]

Mawile 2021. 4. 10.
728x90

 

개발환경 >> SublimeText

언어 >> Lua5.1

운영체제 >> Windows10

 


Lua 데이터타입과 연산자에 관한 문법정리글입니다!

 

[ 데이터타입의 종류 ]

 

 

우선 Lua에서의 데이터타입의 종류는 다음과 같습니다~

우선, nil은 아무것도없는 그러니까 빈 데이터값을 나타냅니다.

boolean은 true또는 false그러니까 참과 거짓을 나타내는 자료형입니다.

number는 숫자를 나타내는 자료형입니다. 실수와 정수 모두 포함됩니다!

string은 문자열을 나타내는 자료형입니다.

파이썬과같이 ''(작은따옴표)를 사용하면 고정값, ""(큰따옴표)를 사용하면 변할수있는값이 됩니다.

function은 함수입니다. 여러가지 복합적인 작업을 캡슐화하여 한번의 호출로 손쉽게 수행할 수 있습니다.

userdata는 C에서 정의할 수 있는 Lua에서의 데이터타입입니다!

thread는 여러개의 쓰레드를 관리하도록하는 자료형입니다. 병렬프로그래밍을 할 수 있도록해줍니다!

table은 key값과 value값으로 나눠서 여러개의 데이터를 넣어서 사용할 수 있으며, 이것을 이용하여 Lua에서는 문법적으로 존재하지않는 클래스(Class)를 사용할수있습니다!

 

 

[ 예시및 사용법 ]

-- 주석문입니다!
--[[
Lua는 파이썬처럼 데이터타입
명시가 필요하지않습니다
]]--

--boolean
true00 = true
false00 = false

--number
int = 18
double = 3.14

--string
str = "hello world"
str_const = 'hello world'

--function
function func001()
end

func002 = function()
end

--thread
cort = coroutine.create(function()
	cnt = 0
	repeat
	cnt = cnt + 1
	print("hello world")
	until cnt == 5
end)
coroutine.resume(cort)
coroutine.status(cort)

--table
TBL = {a = "a1", b = 3}
print(TBL["a"], " : ", TBL.b)

 

 

 


[ 연산자의 종류 ]

다음은 연산자의 종류에 관하여 알려드리겠습니다~

Lua에서 연산자는 Arithmetic , Relational , Logical, Misc 이 세가지 연산자로 나뉩니다.

그럼 천천히 하나씩 알아보겠습니다~!

 

먼저 Arithmetic operator에 관한 표입니다!

C언어라든지 다른언어를 하셨던분들이라면 몇몇개는 익숙하신 연산자가 몇가지있으실겁니다~!

우선 '+'연산자는 두 오퍼랜드를 더하는 연산자입니다.

'-'연산자는 두 오퍼랜드를 빼는 연산자입니다.

'*'연산자는 두 오퍼랜드를 곱하는 연산자입니다.

'/'연산자는 두 오퍼랜드를 나눈후 그 몫을 계산하는 연산자입니다.

'%'연산자는 두 오퍼랜드를 나눈후 그 나머지를 계산하는 연산자입니다.

'^'연산자는 C언어의 xor연산을 하는것과는 다르게 Lua에서는 제곱을 하는 연산자입니다~!

'-'연산자는 만약 양수라면 음수가되고, 음수라면 양수가되는 연산을 하는 연산자입니다!

 

 

다음은 Relational operator에 관한 표입니다!

위 연산자는 양쪽 수를 비교하여 참과 거짓을 가르는 연산자입니다.

'=='연산자는 두 수가 같을시 참이되고, 그게 아니라면 거짓이되는 연산자입니다.

'~='연산자는 두 수가 다를시 참이되고, 그게 아니라면 거짓이되는 연산자입니다.

'>'연산자는 왼쪽에 있는 수가 오른쪽에 있는 수보다 클시 참이되고,

같거나 작을시 거짓이되는 연산자입니다.

'<'연산자는 오른쪽쪽에 있는 수가 왼쪽에 있는 수보다 클시 참이되고,

같거나 작을시 거짓이되는 연산자입니다.

'>='연산자는 왼쪽에 있는 수가 오른쪽에 있는 수보다 크거나 같을시 참이되고,

작을시 거짓이되는 연산자입니다.

'<='연산자는 오른쪽쪽에 있는 수가 왼쪽에 있는 수보다 크거나 같을시 참이되고,

작을시 거짓이되는 연산자입니다.

 

 

다음은 Logical operator에 관한 표입니다!

'and'연산자는 두 오퍼랜드의 값이 모두 참일시 참이되도록 하고,

아닐시 거짓이되도록 하는 연산자입니다.

'or'연산자는 두 오퍼랜드의 값중 하나라도 참일시 참이되도록 하는 연산자입니다.

단 두 오퍼랜드 모두 거짓일시 거짓이 됩니다.

'not'연산자는 앞에 붙은 오퍼랜드의 값이 거짓일시 참이되고,

참일시 거짓이 되도록하는 연산자입니다.

 

 

다음은 Misc operator에 관한 표입니다!

'..'연산자는 두 문자열을 이어 붙인 값을 반환합니다.

'#'연산자는 앞에 붙은 문자열이나 테이블의 길이를 반환합니다.

 

 

 

[ 예시및 사용법 ]

--Arithmetic Operator
int1 = 3 + 2 -- 5
int2 = 3 - 2 -- 1
int3 = 3 * 2 -- 6
int4 = 3 / 2 -- 1
int5 = 3 % 2 -- 1
int6 = 3 ^ 2 -- 9
int7 = -3 -- (-3)

--Relational Operator
if int1 == int2 then
	print("int1 == int2")
end
if int1 ~= int2 then
	print("int1 ~= int2")
end
if int1 > int2 then
	print("int1 > int2")
end
if int1 < int2 then
	print("int1 < int2")
end
if int1 >= int2 then
	print("int1 >= int2")
end
if int1 <= int2 then
	print("int1 <= int2")
end

--Logical Operator
bool1 = false
bool2 = true
if bool1 and bool2 then
	print("bool1 and bool2")
end
if bool1 or bool2 then
	print("bool1 or bool2")
end
if not bool1 then
	print("not bool1")
end

--Misc Operator
str1 = "Dragon"
str2 = "Process"
print(str1..str2)
print(#str1 , #str2)

 

 

 

밑에는 참고문헌입니다.

이상 글 봐주셔서 감사합니다!!

 


www.tutorialspoint.com/lua/lua_data_types.htm

 

Lua - Data Types - Tutorialspoint

Lua - Data Types Lua is a dynamically typed language, so the variables don't have types, only the values have types. Values can be stored in variables, passed as parameters and returned as results. In Lua, though we don't have variable data types, but we h

www.tutorialspoint.com

www.tutorialspoint.com/lua/lua_operators.htm

 

Lua - Operators - Tutorialspoint

Lua - Operators An operator is a symbol that tells the interpreter to perform specific mathematical or logical manipulations. Lua language is rich in built-in operators and provides the following type of operators − Arithmetic Operators Relational Operat

www.tutorialspoint.com


728x90

댓글