1"use strict";(globalThis.webpackChunkmy_blog=globalThis.webpackChunkmy_blog||[]).push([[1162],{28453(e,n,s){s.d(n,{R:()=>i,x:()=>d});var r=s(96540);const c={},l=r.createContext(c);function i(e){const n=r.useContext(l);return r.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(c):e.components||c:i(e.components),r.createElement(l.Provider,{value:n},e.children)}},95862(e,n,s){s.r(n),s.d(n,{assets:()=>t,contentTitle:()=>d,default:()=>o,frontMatter:()=>i,metadata:()=>r,toc:()=>h});const r=JSON.parse('{"id":"Rust/\uad6c\uc870\uccb4","title":"\uad6c\uc870\uccb4","description":"\uad6c\uc870\uccb4(struct)\ub294 \uc11c\ub85c \uad00\ub828 \uc788\ub294 \uac12\uc744 \ud558\ub098\uc758 \uc774\ub984 \ubd99\uc740 \ud0c0\uc785\uc73c\ub85c \ubb36\ub294 \ubc29\ubc95\uc774\ub2e4. \ud29c\ud50c\ub3c4 \uc5ec\ub7ec \uac12\uc744 \ubb36\uc744 \uc218 \uc788\uc9c0\ub9cc, \uad6c\uc870\uccb4\ub294 \uac01 \uac12\uc5d0 \ud544\ub4dc(field) \uc774\ub984\uc744 \ubd99\uc778\ub2e4. \uadf8\ub798\uc11c \ub370\uc774\ud130\uc758 \uc21c\uc11c\ub97c \uae30\uc5b5\ud558\ub294 \ub300\uc2e0, \ucf54\ub4dc \uc548\uc5d0\uc11c \uac12\uc758 \uc758\ubbf8\ub97c \uc9c1\uc811 \uc77d\uc744 \uc218 \uc788\ub2e4.","source":"@site/wiki/Rust/\uad6c\uc870\uccb4.md","sourceDirName":"Rust","slug":"/Rust/\uad6c\uc870\uccb4","permalink":"/wiki/Rust/\uad6c\uc870\uccb4","draft":false,"unlisted":false,"editUrl":"https://github.com/teddygood/teddygood.github.io/tree/main/wiki/Rust/\uad6c\uc870\uccb4.md","tags":[],"version":"current","frontMatter":{"title":"\uad6c\uc870\uccb4","date":"2026-04-28"},"sidebar":"sidebar","previous":{"title":"Python reduce","permalink":"/wiki/Python/reduce"},"next":{"title":"\ub370\uc774\ud130 \ud0c0\uc785","permalink":"/wiki/Rust/\ub370\uc774\ud130 \ud0c0\uc785"}}');var c=s(74848),l=s(28453);const i={title:"\uad6c\uc870\uccb4",date:"2026-04-28"},d=void 0,t={},h=[{value:"\ud544\ub4dc \ucd08\uae30\ud654 \ucd95\uc57d\ubc95",i
1d:"\ud544\ub4dc-\ucd08\uae30\ud654-\ucd95\uc57d\ubc95",level:2},{value:"\uad6c\uc870\uccb4 \uc5c5\ub370\uc774\ud2b8 \ubb38\ubc95",id:"\uad6c\uc870\uccb4-\uc5c5\ub370\uc774\ud2b8-\ubb38\ubc95",level:2},{value:"\ud29c\ud50c \uad6c\uc870\uccb4\uc640 \uc720\uc0ac \uc720\ub2db \uad6c\uc870\uccb4",id:"\ud29c\ud50c-\uad6c\uc870\uccb4\uc640-\uc720\uc0ac-\uc720\ub2db-\uad6c\uc870\uccb4",level:2},{value:"\uad6c\uc870\uccb4 \ud544\ub4dc\uc640 \uc18c\uc720\uad8c",id:"\uad6c\uc870\uccb4-\ud544\ub4dc\uc640-\uc18c\uc720\uad8c",level:2},{value:"\uc65c \ud29c\ud50c\ubcf4\ub2e4 \uad6c\uc870\uccb4\uc778\uac00",id:"\uc65c-\ud29c\ud50c\ubcf4\ub2e4-\uad6c\uc870\uccb4\uc778\uac00",level:2},{value:"Debug \ucd9c\ub825\uacfc dbg!",id:"debug-\ucd9c\ub825\uacfc-dbg",level:2},{value:"\uba54\uc11c\ub4dc\uc640 impl",id:"\uba54\uc11c\ub4dc\uc640-impl",level:2},{value:"\uc790\ub3d9 \ucc38\uc870\uc640 \uc5ed\ucc38\uc870",id:"\uc790\ub3d9-\ucc38\uc870\uc640-\uc5ed\ucc38\uc870",level:2},{value:"\uc5f0\uad00 \ud568\uc218",id:"\uc5f0\uad00-\ud568\uc218",level:2},{value:"References",id:"references",level:2},{value:"Link",id:"link",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,l.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(n.p,{children:"\uad6c\uc870\uccb4(struct)\ub294 \uc11c\ub85c \uad00\ub828 \uc788\ub294 \uac12\uc744 \ud558\ub098\uc758 \uc774\ub984 \ubd99\uc740 \ud0c0\uc785\uc73c\ub85c \ubb36\ub294 \ubc29\ubc95\uc774\ub2e4. \ud29c\ud50c\ub3c4 \uc5ec\ub7ec \uac12\uc744 \ubb36\uc744 \uc218 \uc788\uc9c0\ub9cc, \uad6c\uc870\uccb4\ub294 \uac01 \uac12\uc5d0 \ud544\ub4dc(field) \uc774\ub984\uc744 \ubd99\uc778\ub2e4. \uadf8\ub798\uc11c \ub370\uc774\ud130\uc758 \uc21c\uc11c\ub97c \uae30\uc5b5\ud558\ub294 \ub300\uc2e0, \ucf54\ub4dc \uc548\uc5d0\uc11c \uac12\uc758 \uc758\ubbf8\ub97c \uc9c1\uc811 \uc77d\uc744 \uc218 \uc788\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct User {\n active: bool,\n username: String,\n email: String,\n sign_in_count: u64,\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\uc704 \uc815\uc758\ub294 \uc0ac\uc6a9\uc790 \ub370\uc774\ud130\ub97c \ub2f4\ub294 \ud0c0\uc785\uc758 \ubaa8\uc591\uc744 \ub9cc\ub4e0\ub2e4. \uc2e4\uc81c \uac12\uc744 \uc4f0\ub824\uba74 \uad6c\uc870\uccb4 \uc774\ub984 \ub4a4\uc5d0 \uc911\uad04\ud638\ub97c \uc5f4\uace0 \ud544\ub4dc\ubcc4 \uac12\uc744 \ucc44\uc6cc \uc778\uc2a4\ud134\uc2a4(instance)\ub97c \ub9cc\ub4e0\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:'let user1 = User {\n active: true,\n username: String::from("someusername123"),\n email: String::from("[email protected]"),\n sign_in_count: 1,\n};\n'})}),"\n",(0,c.jsx)(n.p,{children:"\ud544\ub4dc\ub294 \uc810 \ud45c\uae30\ubc95\uc73c\ub85c \uc811\uadfc\ud55c\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"let email = &user1.email;\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc778\uc2a4\ud134\uc2a4\ub97c \ubc14\uafb8\ub824\uba74 \uc778\uc2a4\ud134\uc2a4 \uc804\uccb4\uac00 ",(0,c.jsx)(n.code,{children:"mut"}),"\uc774\uc5b4\uc57c \ud55c\ub2e4. Rust\uc5d0\uc11c\ub294 \ud2b9\uc815 \ud544\ub4dc \ud558\ub098\ub9cc \ub530\ub85c \uac00\ubcc0\uc73c\ub85c \ud45c\uc2dc\ud558\uc9c0 \uc54a\ub294\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:'let mut user1 = User {\n active: true,\n username: String::from("someusername123"),\n email: String::from("[email protected]"),\n sign_in_count: 1,\n};\n\nuser1.email = String::from("[email protected]");\n'})}),"\n",(0,c.jsx)(n.h2,{id:"\ud544\ub4dc-\ucd08\uae30\ud654-\ucd95\uc57d\ubc95",children:"\ud544\ub4dc \ucd08\uae30\ud654 \ucd95\uc57d\ubc95"}),"\n",(0,c.jsx)(n.p,{children:"\uad6c\uc870\uccb4\ub97c \ub9cc\ub4dc\ub294 \ud568\uc218\uc5d0\uc11c\ub294 \ub9e4\uac1c\ubcc0\uc218 \uc774\ub984\uacfc \ud544\ub4dc \uc774\ub984\uc774 \uac19\uc544\uc9c0\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"fn build_user(email: String, username: String) -> User {\n User {\n active: true,\n username,\n email,\n sign_in_count: 1,\n }\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc774 \ubb38\ubc95\uc744 ",(0,c.jsx)(n.strong,{children:"\ud544\ub4dc \ucd08\uae30\ud654 \ucd95\uc57d\ubc95(field init shorthand)"})," \uc774\ub77c\uace0 \ud55c\ub2e4. ",(0,c.jsx)(n.code,{children:"username: username"}),", ",(0,c.jsx)(n.code,{children:"email: email"}),"\ucc98\ub7fc \uac19\uc740 \uc774\ub984\uc744 \ub450 \ubc88 \u
1c4f0\uc9c0 \uc54a\uace0 \ud544\ub4dc \uc774\ub984\ub9cc \uc801\ub294\ub2e4. \ud0c0\uc785\uc774 \ub2ec\ub77c\uc9c0\ub294 \uac83\uc774 \uc544\ub2c8\ub77c, \ubc18\ubcf5\uc744 \uc904\uc774\ub294 \ubb38\ubc95\uc774\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\uad6c\uc870\uccb4-\uc5c5\ub370\uc774\ud2b8-\ubb38\ubc95",children:"\uad6c\uc870\uccb4 \uc5c5\ub370\uc774\ud2b8 \ubb38\ubc95"}),"\n",(0,c.jsxs)(n.p,{children:["\uae30\uc874 \uc778\uc2a4\ud134\uc2a4\uc758 \ub300\ubd80\ubd84\uc744 \uc720\uc9c0\ud558\uace0 \uc77c\ubd80 \ud544\ub4dc\ub9cc \ubc14\uafb8\uace0 \uc2f6\uc744 \ub54c\ub294 ",(0,c.jsx)(n.strong,{children:"\uad6c\uc870\uccb4 \uc5c5\ub370\uc774\ud2b8 \ubb38\ubc95(struct update syntax)"})," \uc744 \uc4f4\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:'let user2 = User {\n email: String::from("[email protected]"),\n ..user1\n};\n'})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"..user1"}),"\uc740 \uc704\uc5d0\uc11c \uc9c1\uc811 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc740 \ub098\uba38\uc9c0 \ud544\ub4dc\ub97c ",(0,c.jsx)(n.code,{children:"user1"}),"\uc5d0\uc11c \uac00\uc838\uc624\uaca0\ub2e4\ub294 \ub73b\uc774\ub2e4. \uc774\ub54c \ubb38\ubc95\uc740 \ub300\uc785\ucc98\ub7fc \ub3d9\uc791\ud558\ubbc0\ub85c, ",(0,c.jsx)(n.code,{children:"String"}),"\ucc98\ub7fc ",(0,c.jsx)(n.code,{children:"Copy"}),"\uac00 \uc544\ub2cc \ud544\ub4dc\ub294 \uc774\ub3d9(move)\ub420 \uc218 \uc788\ub2e4. \uc704 \uc608\uc5d0\uc11c\ub294 ",(0,c.jsx)(n.code,{children:"username"}),"\uc774 ",(0,c.jsx)(n.code,{children:"user1"}),"\uc5d0\uc11c ",(0,c.jsx)(n.code,{children:"user2"}),"\ub85c \uc774\ub3d9\ud55c\ub2e4. \uadf8\ub798\uc11c ",(0,c.jsx)(n.code,{children:"user2"}),"\ub97c \ub9cc\ub4e0 \ub4a4\uc5d0\ub294 ",(0,c.jsx)(n.code,{children:"user1"})," \uc804\uccb4\ub97c \uadf8\ub300\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:["\ubc18\ub300\ub85c ",(0,c.jsx)(n.code,{children:"active"}),"\ub098 ",(0,c.jsx)(n.code,{children:"sign_in_count"}),"\ucc98\ub7fc ",(0,c.jsx)(n.code,{children:"Copy"})," \ud0c0\uc785\uc778 \ud544\ub4dc\ub9cc \uac00\uc838\uc624\ub294 \uacbd\uc6b0\uc5d0\ub294 \uc6d0\ub798 \uc778\uc2a4\ud134\uc2a4\uc758 \ud574\ub2f9 \uac12\uc774 \ubcf5\uc0ac\ub41c\ub2e4. \uad6c\uc870\uccb4 \uc5c5\ub370\uc774\ud2b8 \ubb38\ubc95\uc744 \uc4f8 \ub54c\ub294 \uc5b4\ub5a4 \ud544\ub4dc\uac00 \uc774\ub3d9\ub418\uace0 \uc5b4\ub5a4 \ud544\ub4dc\uac00 \ubcf5\uc0ac\ub418\ub294\uc9c0 \uc18c\uc720\uad8c \uaddc\uce59\uacfc \ud568\uaed8 \ubd10\uc57c \ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\ud29c\ud50c-\uad6c\uc870\uccb4\uc640-\uc720\uc0ac-\uc720\ub2db-\uad6c\uc870\uccb4",children:"\ud29c\ud50c \uad6c\uc870\uccb4\uc640 \uc720\uc0ac \uc720\ub2db \uad6c\uc870\uccb4"}),"\n",(0,c.jsxs)(n.p,{children:["\ud544\ub4dc \uc774\ub984\uae4c\uc9c0\ub294 \ud544\uc694 \uc5c6\uc9c0\ub9cc, \ud29c\ud50c \uc790\uccb4\uc5d0 \ud0c0\uc785 \uc774\ub984\uc744 \ubd99\uc774\uace0 \uc2f6\uc744 \ub54c\ub294 ",(0,c.jsx)(n.strong,{children:"\ud29c\ud50c \uad6c\uc870\uccb4(tuple struct)"})," \ub97c \uc4f4\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct Color(i32, i32, i32);\nstruct Point(i32, i32, i32);\n\nlet black = Color(0, 0, 0);\nlet origin = Point(0, 0, 0);\n"})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"Color"}),"\uc640 ",(0,c.jsx)(n.code,{children:"Point"}),"\ub294 \ub0b4\ubd80 \uad6c\uc131\uc774 \ubaa8\ub450 ",(0,c.jsx)(n.code,{children:"i32"})," \uc138 \uac1c\ub85c \uac19\uc9c0\ub9cc \uc11c\ub85c \ub2e4\ub978 \ud0c0\uc785\uc774\ub2e4. ",(0,c.jsx)(n.code,{children:"Color"}),"\ub97c \ubc1b\ub294 \ud568\uc218\uc5d0 ",(0,c.jsx)(n.code,{children:"Point"}),"\ub97c \ub118\uae38 \uc218 \uc5c6\ub2e4. \uc774 \uc810\uc774 \ud3c9\ubc94\ud55c \ud29c\ud50c\uacfc \ub2e4\ub974\ub2e4. \uac12 \uc790\uccb4\ub294 \ud29c\ud50c\ucc98\ub7fc \ubd84\ud574\ud558\uac70\ub098 ",(0,c.jsx)(n.code,{children:".0"}),", ",(0,c.jsx)(n.code,{children:".1"})," \uac19\uc740 \uc778\ub371\uc2a4\ub85c \uc811\uadfc\ud560 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:["\ub370\uc774\ud130\ub97c \uc804\ud600 \ub2f4\uc9c0 \uc54a\ub294 ",(0,c.jsx)(n.strong,{children:"\uc720\uc0ac \uc720\ub2db \uad6c\uc870\uccb4(unit-like struct)"})," \ub3c4 \ub9cc\ub4e4 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct AlwaysEqual;\n\nlet subject = AlwaysEqual;\n"})}),"\n",(0,c.jsx)(n.p,{children:'\uc774\ub7f0 \ud0c0\uc785\uc740 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud560 \ud544\uc694\ub294 \uc5c6\uc9c0\ub9cc \ud2b9\uc815 \ud2b8\ub808\uc774\ud2b8\ub97c \uad6c\ud604\ud560 \ud0c0\uc785\uc774 \ud544\uc694\ud560 \ub54c \uc4f4\ub2e4. \uc544\uc9c1 \ud2b8\ub808\uc774\ud2b8 \uad6c\ud604\uc744 \ub2e4\ub8e8\uae30 \uc804\uc774\ub77c\uba74, "\uac12\uc740 \uc5c6\uc9c0\ub9cc \ud0c0\uc785\uc740 \uc788\ub2e4"\ub294 \uc815\ub3c4\ub85c \uae30\uc5b5\ud574 \ub450\uba74 \ub41c\ub2e4.'}),"\n",(0,c.jsx)(n.h2,{id:"\uad6c\uc870\uccb4-\ud544\ub4dc\uc640-\uc18c\uc720\uad8c",children:"\uad6c\uc870\uccb4 \ud544\ub4dc\uc640 \uc18c\uc720\uad8c"}),"\n",(0,c.jsxs)(n.p,{children:["\uad6c\uc870\uccb4 \ud544\ub4dc\uc5d0\ub3c4 \uc18c\uc720\uad8c \uaddc\uce59\uc774 \uadf8\ub300\ub85c \uc801\uc6a9\ub41c\ub2e4. Rust Book\uc758 ",(0,c.jsx)(n.code,{children:"User"})," \uc608\uc81c\ub294 ",(0,c.jsx)(n.code,{children:"username"}),"\uacfc ",(0,c.jsx)(n.code,{children:"email"}),"\uc744 ",(0,c.jsx)(n.code,{children:"&str"}),"\uc774 \uc544\ub2c8\ub77c ",(0,c.jsx)(n.code,{children:"String"}),"\uc73c\ub85c \ub454\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct User {\n active: bool,\n username: String,\n email: String,\n sign_in_count: u64,\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc774\ub807\uac8c \ud558\uba74 ",(0,c.jsx)(n.code,{children:"User"})," \uc778\uc2a4\ud134\uc2a4\uac00 \uc720\ud6a8\ud55c \ub3d9\uc548, \uadf8 \uc548\uc758 \ubb38\uc790\uc5f4 \ub370\uc774\ud130\ub3c4 \uc778\uc2a4\ud134\uc2a4\uac00 \uc18c\uc720\ud55c\ub2e4. \uad6c\uc870\uccb4 \uc548\uc5d0 \ucc38\uc870\uc790\ub97c \uc800\uc7a5\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uadf8\ub7ec\ub824\uba74 \ucc38\uc870\uc790\uac00 \uad6c\uc870\uccb4\ubcf4\ub2e4 \uc624\ub798 \uc0b4\uc544 \uc788\uc74c\uc744 \ub77c\uc774\ud504\ud0c0\uc784(lifetime)\uc73c\ub85c \ud45c\ud604\ud574\uc57c \ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct User {\n active: bool,\n username: &str,\n email: &str,\n sign_in_count: u64,\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc704 \ud615\ud0dc\ub294 \ub77c\uc774\ud504\ud0c0\uc784 \ub9e4\uac1c\ubcc0\uc218\uac00 \uc5c6\uc73c\uba74 \ucef4\ud30c\uc77c\ub418\uc9c0 \uc54a\ub294\ub2e4. \uc774 \ub2e8\uacc4\uc5d0\uc11c\ub294 \uad6c\uc870\uccb4\uac00 \ub370\uc774\ud130\ub97c \uc9c1\uc811 \uc18c\uc720\ud574\uc57c \ud558\ub294 \ud544\ub4dc\uc5d0 ",(0,c.jsx)(n.code,{children:"String"})," \uac19\uc740 \uc18c\uc720 \ud0c0\uc785\uc744 \uc4f0\ub294 \ud3b8\uc774 \ud750\ub984\uc744 \uc774\ud574\ud558\uae30 \uc27d\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\uc65c-\ud29c\ud50c\ubcf4\ub2e4-\uad6c\uc870\uccb4\uc778\uac00",children:"\uc65c \ud29c\ud50c\ubcf4\ub2e4 \uad6c\uc870\uccb4\uc778\uac00"}),"\n",(0,c.jsx)(n.p,{children:"\uc0ac\uac01\ud615 \ub113\uc774\ub97c \uacc4\uc0b0\ud558\ub294 \uc608\uc81c\ub97c \ubcf4\uba74 \uad6c\uc870\uccb4\uc758 \uc7a5\uc810\uc774 \ub69c\ub837\ud558\ub2e4. \ucc98\uc74c\uc5d0\ub294 \ub108\ube44\uc640 \ub192\uc774\ub97c \ub530\ub85c \ub118\uae38 \uc218 \uc788\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"fn area(width: u32, height: u32) -> u32 {\n width * height\n}\n"})}),"\n",(0,c.jsx)(n.p,{children:"\uc774 \ud568\uc218\ub294 \ub450 \uac12\uc774 \ud558\ub098\uc758 \uc0ac\uac01\ud615\uc5d0 \uc18d\ud55c\ub2e4\ub294 \uc0ac\uc2e4\uc744 \ud0c0\uc785\uc73c\ub85c \ud45c\ud604\ud558\uc9c0 \ubabb\ud55c\ub2e4. \ud29c\ud50c\ub85c \ubb36\uc73c\uba74 \ub9e4\uac1c\ubcc0\uc218\ub294 \ud558\ub098\uac00 \ub41c\ub2e4."}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"fn area(dimensions: (u32, u32)) -> u32 {\n dimensions.0 * dimensions.1\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\ud558\uc9c0\ub9cc \uc774\uc81c ",(0,c.jsx)(n.code,{children:"0"}),"\uc774 \ub108\ube44\uc774\uace0 ",(0,c.jsx)(n.code,{children:"1"}),"\uc774 \ub192\uc774\ub77c\ub294 \uc57d\uc18d\uc744 \uae30\uc5b5\ud574\uc57c \ud55c\ub2e4. \uad6c\uc870\uccb4\ub85c \ubc14\uafb8\uba74 \ub370\uc774\ud130\uc758 \uad00\uacc4\uc640 \uc758\ubbf8\uac00 \ucf54\ub4dc\uc5d0 \ub0a8\ub294\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"struct Rectangle {\n width: u32,\n height: u32,\n}\n\nfn area(rectangle: &Rectangle) -> u32 {\n rectangle.width * rectangle.height\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc5ec\uae30\uc11c ",(0,c.jsx)(n.code,{children:"area"}),"\uac00 ",(0,c.jsx)(n.code,{children:"&Rectangle"}),"\uc744 \ubc1b\ub294 \uc774\uc720\ub294 \ub113\uc774\ub97c \uacc4\uc0b0\ud558\uae30 \uc704\ud574 \uad6c\uc870\uccb4\uc758 \uc18c\uc720\uad8c\uc744 \uac00\uc838\uc62c \ud544\uc694\uac00 \uc5c6\uae30 \ub54c\ubb38\uc774\ub2e4. \ubd88\ubcc0 \ucc38\uc870\ub85c \ube4c\ub9ac\uba74 \ud638\ucd9c\ud55c \ucabd\uc5d0\uc11c ",(0,c.jsx)(n.code,{children:"rect1"}),"\uc744 \uacc4\uc18d \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"debug-\ucd9c\ub825\uacfc-dbg",children:"Debug \ucd9c\ub825\uacfc dbg!"}),"\n",(0,c.jsxs)(n.p,{children:["\uc0ac\uc6a9\uc790\uac00 \ub9cc\ub4e0 \uad6c\uc870\uccb4\ub294 \uae30\ubcf8\uc801\uc73c\ub85c ",(0,c.jsx)(n.code,{children:'println!("{}", rect1)'}),"\ucc98\ub7fc \ucd9c\ub825\ud560 \uc218 \uc5c6\ub2e4. ",(0,c.jsx)(n.code,{children:"{}"}),"\ub294 ",(0,c.jsx)(n.code,{children:"Display"})," \ud615\uc2dd\uc744 \uc694\uad6c\ud558\ub294\ub370, Rust\ub294 \uc784\uc758\uc758 \uad6c\uc870\uccb4\ub97c \uc0ac\ub78c\uc774 \ubcfc \ubb38\uc790\uc5f4\ub85c \uc5b4\ub5bb\uac8c \ud45c\ud604\ud574\uc57c \ud560\uc9c0 \uc790\ub3d9\uc73c\ub85c \uc815\ud558\uc9c0 \uc54a\ub294\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:["\ub514\ubc84\uae45\uc6a9 \ucd9c\ub825\uc774 \ud544\uc694\ud558\uba74 ",(0,c.jsx)(n.code,{children:"Debug"})," \ud2b8\ub808\uc774\ud2b8\ub97c \ud30c\uc0dd\ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:'#[derive(Debug)]\nstruct Rectangle {\n width: u32,\n height: u32,\n}\n\nlet rect1 = Rectangle {\n width: 30,\n height: 50,\n};\n\nprintln!("rect1 is {:?}", rect1);\nprintln!("rect1 is {:#?}", rect1);\n'})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"{:?}"}),"\ub294 \ud55c \uc904\uc5d0 \uac00\uae5d\uac8c \ucd9c\ub825\ud558\uace0, ",(0,c.jsx)(n.code,{children:"{:#?}"}),"\ub294 \ub354 \uc77d\uae30 \uc88b\uc740 \ud615\ud0dc\ub85c \ucd9c\ub825\ud55c\ub2e4. ",(0,c.jsx)(n.code,{children:"dbg!"})," \ub9e4\ud06c\ub85c\ub3c4 \ub514\ubc84\uae45\uc5d0 \uc4f8 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"let scale = 2;\nlet rect1 = Rectangle {\n width: dbg!(30 * scale),\n height: 50,\n};\n\ndbg!(&rect1);\n"})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"dbg!"}),"\ub294 \ud45c\ud604\uc2dd\uc758 \uac12, \ud30c\uc77c\uba85, \uc904 \ubc88\ud638\ub97c \ud45c\uc900 \uc5d0\ub7ec(stderr)\uc5d0 \ucd9c\ub825\ud55c\ub2e4. \ud45c\ud604\uc2dd\uc758 \uc18c\uc720\uad8c\uc744 \uac00\uc838\uc654\ub2e4\uac00 \ub2e4\uc2dc \ubc18\ud658\ud558\ubbc0\ub85c, \uad6c\uc870\uccb4 \uc804\uccb4\ub97c \uacc4\uc18d \uc368\uc57c \ud55c\ub2e4\uba74 ",(0,c.jsx)(n.code,{children:"dbg!(&rect1)"}),"\ucc98\ub7fc \ucc38\uc870\ub97c \ub118\uae30\ub294 \ud3b8\uc774 \uc548\uc804\ud558\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\uba54\uc11c\ub4dc\uc640-impl",children:"\uba54\uc11c\ub4dc\uc640 impl"}),"\n",(0,c.jsxs)(n.p,{children:["\uad6c\uc870\uccb4\uc5d0 \uad00\ub828\ub41c \ub3d9\uc791\uc740 \ud568\uc218\ub85c \ub530\ub85c \ub458 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uad6c\uc870\uccb4\uc758 ",(0,c.jsx)(n.code,{children:"impl"})," \ube14\ub85d \uc548\uc5d0 ",(0,c.jsx)(n.strong,{children:"\uba54\uc11c\ub4dc(method)"})," \ub85c \uc815\uc758\ud558\uba74 \ud0c0\uc785\uacfc \ub3d9\uc791\uc774 \ub354 \uac00\uae4c\uc6cc\uc9c4\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:'#[derive(Debug)]\nstruct Rectangle {\n width: u32,\n height: u32,\n}\n\nimpl Rectangle {\n fn area(&self) -> u32 {\n self.width * self.height\n }\n}\n\nlet rect1 = Rectangle {\n width: 30,\n height: 50,\n};\n\nprintln!("{}", rect1.area());\n'})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"impl Rectangle"})," \uc548\uc5d0 \uc788\ub294 \ud56d\ubaa9\uc740 ",(0,c.jsx)(n.code,{children:"Rectangle"})," \ud0c0\uc785\uacfc \uc5f0\uad00\ub41c\ub2e4. \uba54\uc11c\ub4dc\uc758 \uccab \ubc88\uc9f8 \ub9e4\uac1c\ubcc0\uc218\ub294 \ud56d\uc0c1 ",(0,c.jsx)(n.code,{children:"self"})," \uacc4\uc5f4\uc774\ub2e4. ",(0,c.jsx)(n.code,{children:"&self"}),"\ub294 ",(0,c.jsx)(n.code,{children:"self: &Self"}),"\uc758 \ucd95\uc57d\ud615\uc774\uace0, \uc5ec\uae30\uc11c ",(0,c.jsx)(n.code,{children:"Self"}),"\ub294 \ud604\uc7ac ",(0,c.jsx)(n.code,{children:"impl"})," \ub300\uc0c1 \ud0c0\uc785\uc778 ",(0,c.jsx)(n.code,{children:"Rectangle"}),"\uc744 \ub73b\ud55c\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"area"}),"\ub294 \uad6c\uc870\uccb4\ub97c \uc77d\uae30\ub9cc \ud558\ubbc0\ub85c ",(0,c.jsx)(n.code,{children:"&self"}),"\uac00 \ub9de\ub2e4. \uac12\uc744 \ubc14\uafd4\uc57c \ud55c\ub2e4\uba74 ",(0,c.jsx)(n.code,{children:"&mut self"}),"\ub97c \uc4f0\uace0, \uac12\uc744 \uc18c\ube44\ud574\uc11c \ub2e4\ub978 \uac12\uc73c\ub85c \ubc14\uafd4\uc57c \ud558\ub294 \uacbd\uc6b0\uc5d0\ub294 ",(0,c.jsx)(n.code,{children:"self"}),"\ub97c \uc4f4\ub2e4. \ub2e4\ub9cc ",(0,c.jsx)(n.code,{children:"self"}),"\ub9cc \uc368\uc11c \uc18c\uc720\uad8c\uc744 \uac00\uc838\uc624\ub294 \uba54\uc11c\ub4dc\ub294 \uc6d0\ubcf8 \uc778\uc2a4\ud134\uc2a4\ub97c \uc774\ud6c4\uc5d0 \ubabb \uc4f0\uac8c \ub9cc\ub4e4\uae30 \ub54c\ubb38\uc5d0 \uc790\uc8fc \uc4f0\ub294 \ud615\ud0dc\ub294 \uc544\ub2c8\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:["\uba54\uc11c\ub4dc\ub294 ",(0,c.jsx)(n.code,{children:"self"})," \ub4a4\uc5d0 \uc77c\ubc18 \ub9e4\uac1c\ubcc0\uc218\ub97c \ub354 \ubc1b\uc744 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"impl Rectangle {\n fn can_hold(&self, other: &Rectangle) -> bool {\n self.width > other.width && self.height > other.height\n }\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"rect1.can_hold(&rect2)"}),"\ucc98\ub7fc \ud638\ucd9c\ud558\uba74 ",(0,c.jsx)(n.code,{children:"rect1"}),"\uc740 \uba54\uc11c\ub4dc\uc758 \uc218\uc2e0\uc790(receiver)\uac00 \ub418\uace0, ",(0,c.jsx)(n.code,{children:"rect2"}),"\ub294 \uc77c\ubc18 \uc778\uc218\ub85c \ub4e4\uc5b4\uac04\ub2e4. \uc774 \uc608\uc81c\uc5d0\uc11c\ub3c4 ",(0,c.jsx)(n.code,{children:"other"}),"\ub97c \uc77d\uae30\ub9cc \ud558\ubbc0\ub85c ",(0,c.jsx)(n.code,{children:"&Rectangle"}),"\uc744 \ubc1b\ub294\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\uc790\ub3d9-\ucc38\uc870\uc640-\uc5ed\ucc38\uc870",children:"\uc790\ub3d9 \ucc38\uc870\uc640 \uc5ed\ucc38\uc870"}),"\n",(0,c.jsxs)(n.p,{children:["Rust\uc758 \uba54\uc11c\ub4dc \ud638\ucd9c\uc5d0\ub294 ",(0,c.jsx)(n.strong,{children:"\uc790\ub3d9 \ucc38\uc870 \ubc0f \uc5ed\ucc38\uc870(automatic referencing and dereferencing)"})," \uac00 \ub4e4\uc5b4\uac04\ub2e4. \uadf8\ub798\uc11c C\ub098 C++\ucc98\ub7fc \uac12 \ud638\ucd9c\uc5d0\ub294 ",(0,c.jsx)(n.code,{children:"."}),", \ud3ec\uc778\ud130 \ud638\ucd9c\uc5d0\ub294 ",(0,c.jsx)(n.code,{children:"->"}),"\ub97c \ub098\ub220 \uc4f0\uc9c0 \uc54a\ub294\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"p1.distance(&p2);\n(&p1).distance(&p2);\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uba54\uc11c\ub4dc\uc758 \uc218\uc2e0\uc790 \ud0c0\uc785\uacfc \uba54\uc11c\ub4dc \uc774\ub984\uc774 \uc815\ud574\uc838 \uc788\uc73c\uba74, Rust\ub294 \uc2dc\uadf8\ub2c8\ucc98\uc5d0 \ub9de\uac8c ",(0,c.jsx)(n.code,{children:"&"}),", ",(0,c.jsx)(n.code,{children:"&mut"}),", ",(0,c.jsx)(n.code,{children:"*"}),"\ub9
17c \uc790\ub3d9\uc73c\ub85c \uc870\uc815\ud55c\ub2e4. \uc774 \ub355\ubd84\uc5d0 \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c\ud560 \ub54c\ub294 \ub300\uccb4\ub85c \uac12\uc5d0 \uc810\uc744 \ucc0d\uace0 \ud638\ucd9c\ud558\uba74 \ub41c\ub2e4. \uc2e4\uc81c \ub300\uc5ec \ud615\ud0dc\ub294 \uba54\uc11c\ub4dc \uc2dc\uadf8\ub2c8\ucc98\uc758 ",(0,c.jsx)(n.code,{children:"self"}),", ",(0,c.jsx)(n.code,{children:"&self"}),", ",(0,c.jsx)(n.code,{children:"&mut self"}),"\uac00 \uacb0\uc815\ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"\uc5f0\uad00-\ud568\uc218",children:"\uc5f0\uad00 \ud568\uc218"}),"\n",(0,c.jsxs)(n.p,{children:[(0,c.jsx)(n.code,{children:"impl"})," \ube14\ub85d \uc548\uc758 \ubaa8\ub4e0 \ud568\uc218\ub294 ",(0,c.jsx)(n.strong,{children:"\uc5f0\uad00 \ud568\uc218(associated function)"})," \ub2e4. \uadf8\uc911 \uccab \ubc88\uc9f8 \ub9e4\uac1c\ubcc0\uc218\ub85c ",(0,c.jsx)(n.code,{children:"self"}),"\ub97c \ubc1b\ub294 \ud568\uc218\uac00 \uba54\uc11c\ub4dc\ub2e4. ",(0,c.jsx)(n.code,{children:"self"}),"\ub97c \ubc1b\uc9c0 \uc54a\ub294 \uc5f0\uad00 \ud568\uc218\ub294 \uc778\uc2a4\ud134\uc2a4 \uc5c6\uc774 \ud0c0\uc785 \uc774\ub984\uc73c\ub85c \ud638\ucd9c\ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"impl Rectangle {\n fn square(size: u32) -> Self {\n Self {\n width: size,\n height: size,\n }\n }\n}\n\nlet sq = Rectangle::square(3);\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc774\ub7f0 \ud568\uc218\ub294 \uc0dd\uc131\uc790\ucc98\ub7fc \uc790\uc8fc \uc4f0\uc778\ub2e4. \uad00\ub840\uc801\uc73c\ub85c ",(0,c.jsx)(n.code,{children:"new"}),"\ub77c\ub294 \uc774\ub984\uc744 \ub9ce\uc774 \uc4f0\uc9c0\ub9cc, ",(0,c.jsx)(n.code,{children:"new"}),"\ub294 Rust\uc758 \ud2b9\ubcc4\ud55c \ud0a4\uc6cc\ub4dc\uac00 \uc544\ub2c8\ub2e4. ",(0,c.jsx)(n.code,{children:"Rectangle::square(3)"}),"\uc5d0\uc11c \ubcf4\uc774\ub294 ",(0,c.jsx)(n.code,{children:"::"}),"\ub294 \ud0c0\uc785\uc758 \ub124\uc784\uc2a4\ud398\uc774\uc2a4 \uc548\uc5d0 \uc788\ub294 \uc5f0\uad00 \ud568\uc218\ub97c \ud638\ucd9c\ud55c\ub2e4\ub294 \ud45c\uc2dc\ub2e4."]}),"\n",(0,c.jsxs)(n.p,{children:["\ud558\ub098\uc758 \uad6c\uc870\uccb4\uc5d0\ub294 \uc5ec\ub7ec ",(0,c.jsx)(n.code,{children:"impl"})," \ube14\ub85d\uc744 \ub458 \uc218 \uc788\ub2e4."]}),"\n",(0,c.jsx)(n.pre,{children:(0,c.jsx)(n.code,{className:"language-rust",children:"impl Rectangle {\n fn area(&self) -> u32 {\n self.width * self.height\n }\n}\n\nimpl Rectangle {\n fn can_hold(&self, other: &Rectangle) -> bool {\n self.width > other.width && self.height > other.height\n }\n}\n"})}),"\n",(0,c.jsxs)(n.p,{children:["\uc774 \uc7a5\uc758 \ub2e8\uc21c \uc608\uc81c\uc5d0\uc11c\ub294 \uad73\uc774 \ub098\ub20c \uc774\uc720\uac00 \uc5c6\uc9c0\ub9cc, \uc81c\ub124\ub9ad \ud0c0\uc785\uc774\ub098 \ud2b8\ub808\uc774\ud2b8 \uad6c\ud604\uc744 \ub2e4\ub8f0 \ub54c\ub294 \uc5ec\ub7ec ",(0,c.jsx)(n.code,{children:"impl"})," \ube14\ub85d\uc774 \uc790\uc5f0\uc2a4\ub7fd\uac8c \ub4f1\uc7a5\ud55c\ub2e4."]}),"\n",(0,c.jsx)(n.h2,{id:"references",children:"References"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://doc.rust-kr.org/ch05-00-structs.html",children:"\uad6c\uc870\uccb4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5f0\uad00\ub41c \ub370\uc774\ud130 \uad6c\uc870\ud654\ud558\uae30 - The Rust Programming Language"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://doc.rust-kr.org/ch05-01-defining-structs.html",children:"\uad6c\uc870\uccb4 \uc815\uc758 \ubc0f \uc778\uc2a4\ud134\uc2a4\ud654 - The Rust Programming Language"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://doc.rust-kr.org/ch05-02-example-structs.html",children:"\uad6c\uc870\uccb4\ub97c \uc774\uc6a9\ud55c \uc608\uc81c \ud504\ub85c\uadf8\ub7a8 - The Rust Programming Language"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"https://doc.rust-kr.org/ch05-03-method-syntax.html",children:"\uba54\uc11c\ub4dc \ubb38\ubc95 - The Rust Programming Language"})}),"\n"]}),"\n",(0,c.jsx)(n.h2,{id:"link",children:"Link"}),"\n",(0,c.jsxs)(n.ul,{children:["\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"/wiki/Rust/%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%83%80%EC%9E%85",children:"\ub370\uc774\ud130 \ud0c0\uc785"})}),"\n",(0,c.jsx)(n.li,{children:(0,c.jsx)(n.a,{href:"/wiki/Rust/%EC%86%8C%EC%9C%A0%EA%B6%8C%EA%B3%BC%20%EB%8C%80%EC%97%AC",children:"\uc18c\uc720\uad8c\uacfc \ub300\uc5ec"})}),"\n"]})]})}function o(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,c.jsx)(n,{...e,children:(0,c.jsx)(a,{...e})}):a(e)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.