en
Feedback
ToCode

ToCode

Open in Telegram

讟讬驻讬诐 拽爪专讬诐 诇诪转讻谞转讬诐 诪讗转 讬谞讜谉 驻专拽

Show more
1 419
Subscribers
+124 hours
No data7 days
No data30 days
Posts Archive
ToCode
1 422
# 砖讬诪讜砖 讞讜讝专 讘拽讜讚 注诐 拽诇讜讝'专 讜诪驻讜转 讗谞讬 诪诪砖讬讱 诇讻转讜讘 注诇 Advent Of Code 讻讬 讗谞讬 注讚讬讬谉 讘讛转诇讛讘讜转 砖诇 讛讛转讞诇讛. 诇讗 讬讜讚注 讻诪讛 讝诪谉 注讜讚 讗爪诇讬讞 诇讛转诪讬讚, 讗讘诇 讘讻诇 诪拽专讛 诪拽讜讜讛 砖讗诐 讗转诐 拽讜专讗讬诐 讗转 讝讛 讗讜诇讬 讝讛 讬讬转谉 讙诐 诇讻诐 讞砖拽 诇砖讞拽 注诐 讛讗转讙专讬诐. 讛讬讜诪讬讬诐 讛专讗砖讜谞讬诐 讛讬讜 讘谞讜讬讬诐 诪诪砖 讟讜讘 讜讗讛讘转讬 讘诪讬讜讞讚 讗转 讛讗转讙专 砖诇 讗转诪讜诇 砖讞讬讘专 讘讬谉 讛转专讙讬诇 诇转讬讗讜专讬讛 砖诇 诪讘谞讛 讛诪讞砖讘 讜注讝专 诇讛讘讬谉 讗讬讱 注讜讘讚 讝讬讻专讜谉 讜讗讬讱 诪讞砖讘讬诐 诪专讬爪讬诐 转讜讻谞讬讜转. 讘拽讬爪讜专 诪讜诪诇抓. 讗讛, 讜讝讛 讛拽讬砖讜专 砖讬讛讬讛 诇讻诐 拽诇: https://adventofcode.com/2019/day/2 讗谞讬 驻讜转专 讗讜转诐 讛砖谞讛 讘拽诇讜讝'专 讘诪讟专讛 诇诇诪讜讚 讗转 讛砖驻讛, 讜讛转专讙讬诇 砖诇 讗转诪讜诇 谞转谉 诇讬 讛讝讚诪谞讜转 诇诇诪讜讚 讗讬讱 诇讛砖转诪砖 讘诪驻讜转 (Hash Maps) 讻讚讬 诇讞住讜讱 讘拽讜讚 讻驻讜诇. 讛谞讛 砖转讬 驻讜谞拽爪讬讜转 诪转讜讱 讛讙讬专住讗 讛专讗砖讜谞讛 砖讻转讘转讬:
(defn process-add
  [ip program]
  (let [
        [opcode idx1 idx2 idx3] (subvec program ip)
        val1 (nth program idx1)
        val2 (nth program idx2)
        ]

    (assoc program idx3 (+ val1 val2))
    ))

(defn process-mul
  [ip program]
  (let [
        [opcode idx1 idx2 idx3] (subvec program ip)
        val1 (nth program idx1)
        val2 (nth program idx2)
        ]

    (assoc program idx3 (* val1 val2))
    ))
讝讛 拽诇讜讝'专 讗讝 讗谞讬 讗转专讙诐 - 讻诇 讗讞转 诪讛驻讜谞拽爪讬讜转 诪拽讘诇转 讻转讜讘转 讜转讜讻谞讬转 (讛转讜讻谞讬转 讛讬讗 讘住讱 讛讻诇 诪注专讱) 讜讗讝 诪讘爪注转 讗转 讛注讘讜讚讛 砖诇讛: 驻讜谞拽爪讬讬转 讛讞讬讘讜专 诇讜拽讞转 讗讬谞讚拽住讬诐 诪讛转讜讻谞讬转, 砖讜诇驻转 注专讻讬诐 诪转讗讬诪讬诐, 诪讞讘专转 讗讜转诐 讜专讜砖诪转 讗转 讛转讜爪讗讛 诇讗讬谞讚拽住 讛砖诇讬砖讬, 讜驻讜谞拽爪讬讬转 讛讻驻诇 注讜砖讛 讗讜转讜 讚讘专 讘讚讬讜拽 讗讘诇 注诐 讻驻诇. 砖驻讜转 转讻谞讜转 专讘讜转 (讜拽诇讜讝'专 讘讬谞讬讛谉) 诪讗驻砖专讜转 诇讞住讜讱 讗转 讻驻诇 讛拽讜讚 讛谞讜专讗 讛讝讛 讘讗诪爪注讜转 讛注讘专转 讛讗讜驻专讟讜专 讻驻专诪讟专 谞讜住祝 诇驻讜谞拽爪讬讛. 讘诪拽专讛 砖诇谞讜 讗讙讘 讛驻讜谞拽爪讬讛 讻讘专 诪拽讘诇转 讗转 拽讜讚 讛驻注讜诇讛 讘驻专诪讟专 opcode 讻讱 砖讗驻讬诇讜 诇讗 爪专讬讱 诇砖谞讜转 砖讜诐 讚讘专 讘讞转讬诪讛 讗讜 讘砖讜专转 讛拽专讬讗讛. 讘砖讘讬诇 诇讞住讜讱 讗转 讻驻诇 讛拽讜讚 讻诇 诪讛 砖讗谞讞谞讜 爪专讬讻讬诐 诇注砖讜转 讛讜讗 诇讘谞讜转 驻讜谞拽爪讬讛 讞讚砖讛 砖诪住转讻诇转 注诇 拽讜讚 讛驻注讜诇讛 讘 opcode 讜诇驻讬 讝讛 诪讞诇讬讟讛 诪讛 诇注砖讜转. 诪砖讛讜 讻诪讜 讝讛:
(defn process
  [ip program]
  (let [
        [opcode idx1 idx2 idx3] (subvec program ip)
        val1 (nth program idx1)
        val2 (nth program idx2)
        op (get operators opcode)
        ]

    (case opcode
      1 (assoc program idx3 (+ val1 val2))
      2 (assoc program idx3 (* val1 val2))
    )))
讜讝讛 注讜讘讚 讜讬讻讜诇 讘拽诇讜转 诇讛讞诇讬祝 讗转 砖转讬 讛驻讜谞拽爪讬讜转, 讗讘诇 注讚讬讬谉 诪砖讛讜 诪专讙讬砖 爪讜专诐: 砖讜专转 讛 case 讘住讜祝 诪砖讜讻驻诇转, 讜谞讻讜谉 砖讝讛 砖讻驻讜诇 拽讟谉 讬讜转专 诪讗砖专 砖讻驻讜诇 砖诇 驻讜谞拽爪讬讛 砖诇诪讛, 讗讘诇 讘讻诇 讝讗转 砖讻驻讜诇 讝讛 砖讻驻讜诇 讜诇讗讟 诇讗讟 讻讻诇 砖讬讜住讬驻讜 讬讜转专 驻注讜诇讜转 诇诪讻讜谞讛 讝讛 专拽 讬讛驻讜讱 诇拽砖讛 讬讜转专 诇转讞讝讜拽讛. 砖驻讜转 转讻谞讜转 专讘讜转 (讜拽诇讜讝'专 讘讬谞讬讛谉) 诪讗驻砖专讜转 诇讛注讘讬专 讗转 讛驻讜谞拽爪讬讛 注爪诪讛 砖诇 讛讻驻诇 讗讜 讛讞讬讘讜专 讘转讜专 驻专诪讟专, 讗讜 诇砖诪讜专 讗讜转诐 讘转讜专 注专讻讬诐 讘 Hash Map. 砖诪讬专讛 讻讝讜 讗讜诪专转 砖谞讜讻诇 "诇砖诇讜祝" 讗转 讛驻注讜诇讛 诪讛 Hash Map 讘诪拽讜诐 诇讻转讜讘 驻拽讜讚转 switch/case 讗专讜讻讛 砖诪讻住讛 讗转 讻诇 讛诪拽专讬诐. 砖讻转讜讘 讛拽讜讚 砖讬砖转诪砖 讘 Hash Map 谞讜转谉 讗转 讛驻讜谞拽爪讬讛 讛讘讗讛:
(def operators 
  {
   1 +
   2 * 
   })

(defn process
  [ip program]
  (let [
        [opcode idx1 idx2 idx3] (subvec program ip)
        val1 (nth program idx1)
        val2 (nth program idx2)
        op (get operators opcode)
        ]

    (assoc program idx3 (op val1 val2))
    ))
讗谞讬 讗讜讛讘 讗转 讛讙讬专住讗 讛讝讜 讻讬 讬砖 讻讗谉 讛驻专讚讛 讘讬谉 讛驻注讜诇讜转 诇讘讬谉 讛驻讜谞拽爪讬讛 砖诪讘爪注转 讗转 讛驻注讜诇讜转, 讜诇讻谉 讬讛讬讛 拽诇 讘注转讬讚 诇砖谞讜转 讗转 诪讝讛讬 讛驻注讜诇讜转 讗讜 诇讛讜住讬祝 驻注讜诇讜转 谞讜住驻讜转. 讗驻砖专 讛讬讛 诇讻转讜讘 讗转 讛驻讜谞拽爪讬讛 讘爪讜专讛 讗驻讬诇讜 讬讜转专 讙谞专讬转 讻讱 砖转讜讻诇 诇讟驻诇 讘驻注讜诇讜转 注诐 诪住驻专 诪砖转谞讛 砖诇 驻专诪讟专讬诐, 讗讘诇 诇讗 讛讬讛 讘讝讛 爪讜专讱 讘砖讘讬诇 讛转专讙讬诇 砖诇 讛讬讜诐. 讬砖 诇讬 转讞讜砖讛 砖注讜讚 谞讞讝讜专 诇拽讜讚 讛讝讛 讘讛诪砖讱 讛讞讜讚砖.

ToCode
1 422
# 讛讜讚注转 讛砖讙讬讗讛 "can only recur from tail position" 讘 Clojure 讗讚讜讜谞讟 讗讜祝 拽讜讚 讛讞讚砖 讛转讞讬诇 讛讬讜诐 讜讗谞讬 砖诪讞转讬 砖诪爪讗转讬 拽爪转 讝诪谉 驻谞讜讬 讘讘讜拽专 讻讚讬 诇驻转讜专 讗转 讛转专讙讬诇 诇驻谞讬 转讞讬诇转 讛讬讜诐. 诇诪专讜转 砖讛转专讙讬诇 注爪诪讜 讛讬讛 驻砖讜讟 讻砖谞讬住讬转讬 诇讛专讬抓 讗转 讛专拽讜专住讬讛 拽诇讜讝'专 爪注拽 注诇讬讬 讗转 讛诪砖驻讟: > Can only recur from tail position 讘诪拽讜诐 诇讘诇讘诇 讗转讻诐 注诐 讛拽讜讚 砖诇讬 砖讬爪专 讗转 讛砖讙讬讗讛 讞砖讘转讬 诇讛讘讬讗 讻讗谉 讙讬专住讗 拽爪专讛 讬讜转专 砖讙讜专诪转 诇讗讜转讛 讘注讬讛:
(defn factorial-no-tail
  [n]
  (cond
        (< n 1) n
        :else (* n (recur (dec n)))))
讛驻讜谞拽爪讬讛 factorial-no-tail 讛讬讗 驻讜谞拽爪讬讛 专拽讜专住讬讘讬转 驻砖讜讟讛 诇讞讬砖讜讘 注爪专转, 砖讗诐 转专砖诪讜 讗讜转讛 讘转讜讻谞讬转 拽诇讜讝'专 讛转讜讻谞讬转 转住专讘 诇讛转拽诪驻诇 讜诇专讜抓. 讗讝 诪讛 拽讜专讛 讻讗谉? 诇拽诇讜讝'专, 讻诪讜 诇砖驻讜转 专讘讜转 讗讞专讜转, 讬砖 砖谞讬 诪谞讙谞讜谞讬诐 诇讛驻注讬诇 驻讜谞拽爪讬讛 讘爪讜专讛 专拽讜专住讬讘讬转: 讛诪谞讙谞讜谉 讛专讗砖讜谉 讛讜讗 专拽讜专住讬讛 讛诪讘讜住住转 注诇 讛诪讞住谞讬转, 讜讛砖谞讬 专拽讜专住讬讛 讛诪讘讜住住转 注诇 goto 讗讜 专拽讜专住讬讬转 讝谞讘. 讘专拽讜专住讬转 诪讞住谞讬转 讛转讜讻谞讬转 "讝讜讻专转" 讗讬驻讛 讛讬讗 讛讬转讛 讜诪讛 讛讬讜 注专讻讬 讻诇 讛诪砖转谞讬诐 诇驻谞讬 讛拽专讬讗讛 讛专拽讜专住讬讘讬转, 讻讚讬 砖讗驻砖专 讬讛讬讛 诇讞讝讜专 诇讗讜转讛 谞拽讜讚讛 讻砖讛拽专讬讗讛 讛专拽讜专住讬讘讬转 诪住转讬讬诪转 讜诇讛诪砖讬讱 诪砖诐 讗转 讛讞讬砖讜讘. 讛谞讛 讚讜讙诪讗 拽爪专讛 诇讞讬砖讜讘 注爪专转 砖诇 4 讘讙讬砖转 讛诪讞住谞讬转:
4! = 4 * 3!
             3 * 2!
                   2 * 1!
                         1
=>
4! = 4 * 3 * 2 * 1 = 24
讘讞讬砖讜讘 4! 谞专砖讜诐 讘爪讚 讗转 4 讜讗讝 谞诇讱 诇讞砖讘 讗转 3!. 讘砖讘讬诇 诇诪爪讜讗 讗转 3! 谞专砖讜诐 讘爪讚 讗转 3 讜讗讝 谞诇讱 诇讞砖讘 讗转 2!, 讘砖讘讬诇讜 谞专砖讜诐 讘爪讚 讗转 2 讜谞诇讱 诇讞砖讘 讗转 1! 讜诇砖诪讞转谞讜 1! 讛讜讗 1. 注讻砖讬讜 诪转讞讬诇讬诐 诇讙诇讙诇 讗讞讜专讛 讜讘注讝专转 讛-1 诪讙诇讬诐 砖 2! 讛讜讗 2, 讘注讝专转讜 讗驻砖专 诇讙诇讜转 砖 3! 讛讜讗 6 讜讗讬转讜 谞讙诇讛 砖 4! 讛讜讗 4. 诇注讜诪转讛 讘专拽讜专住讬讬转 讝谞讘 (讗讜 专拽讜专住讬讬转 goto) 讛转讜讻谞讬转 讬讻讜诇讛 诇讛诪砖讬讱 诇拽专讬讗讛 讛专拽讜专住讬讘讬转 讘诇讬 诇砖诪讜专 砖讜诐 诪讬讚注 讘讝讬讻专讜谉. 拽讜讚 专拽讜专住讬讬转 讝谞讘 诇讚讜讙诪讗 诇讗讜转讜 讞讬砖讜讘 注爪专转 讬专讗讛 讻讱:
(defn factorial-tail
  [n]
  (loop [n n acc 1]
    (cond
      (< n 1) acc
      :else (recur (dec n) (* n acc)))))
讛驻拽讜讚讛 recur 诪驻注讬诇讛 拽专讬讗讛 专拽讜专住讬讘讬转 讜转讜爪讗转 讛拽专讬讗讛 讛专拽讜专住讬讘讬转 转讛讬讛 讘讚讬讜拽 注专讱 讛讛讞讝专 砖诇 讛驻讜谞拽爪讬讛. 讘诪爪讘 讻讝讛 诇讗 讬讛讬讛 砖讜诐 讞讬砖讜讘 讗讞专讬 砖谞住讬讬诐 讗转 讛专拽讜专住讬讛 讜诇讗 谞爪讟专讱 诇讙诇讙诇 讗讞讜专讛 讗转 讛转讜爪讗讜转. 讘拽诇讜讝'专 讛驻拽讜讚讛 recur 诪驻注讬诇讛 拽专讬讗转 专拽讜专住讬讬转 讝谞讘. 讜诇诪专讜转 砖讝讛 诇讗 诪讜诪诇抓 讻讬 讛讝讬讻专讜谉 注诇讜诇 诇讛讬讙诪专 诇讻诐, 讗转诐 讬讻讜诇讬诐 诇讛驻注讬诇 讙诐 专拽讜专住讬讬转 诪讞住谞讬转 讘拽诇讜讝'专 讗诐 转砖转诪砖讜 讘砖诐 讛驻讜谞拽爪讬讛 讘诪拽讜诐 讘驻拽讜讚讛 recur, 讻诇讜诪专 讛拽讜讚 讛诪拽讜专讬 讬讻讜诇 诇讛讬讻转讘 讻讱 讜讗讝 讬专讜抓 讘诇讬 讘注讬讛:
(defn factorial-recursive
  [n]
  (cond
        (< n 1) 1
        :else (* n (factorial-recursive (dec n)))))
诪讘讞讬谞转 诪讙讘诇讜转 讝讬讻专讜谉 讗爪诇讬 注诇 讛诪讻讜谞讛 讛诪讞住谞讬转 谞讙诪专讛 讘讞讬砖讜讘 4300 注爪专转 注诐 专拽讜专住讬讬转 诪讞住谞讬转, 讗讘诇 讘专拽讜专住讬讬转 讝谞讘 讛爪诇讞转讬 诇讞砖讘 讙诐 讗转 注砖专转 讗诇驻讬诐 注爪专转 讘诇讬 讘注讬讛 讘讻诇诇.

ToCode
1 422
# 讻诇诇讬诐 讜讬讜爪讗讬诐 诪谉 讛讻诇诇 讻砖讗谞讞谞讜 诪讝讛讬诐 诪讘谞讬诐 讚讜诪讬诐 讘讬谉 砖驻讜转 砖讜谞讜转 诪驻转讛 诇讞砖讜讘 砖讛诪讘谞讬诐 注讜讘讚讬诐 讗讜转讜 讚讘专 讙诐 诪转讞转 诇驻谞讬 讛砖讟讞, 诇诪专讜转 砖讛专讘讛 驻注诪讬诐 讝讛 诇讗 讻讱. 讚讜讙诪讗 拽诇讗住讬转 讛讬讗 讛拽讜讚 讛讘讗 讘砖驻转 Ruby:
data = { name: 'my item', price: 15 }
砖谞专讗讛 诪诪砖 讚讜诪讛 诇拽讜讚 讛讘讗 讘砖驻讛 JavaScript:
data = { name: 'my item', price: 15 }
专拽 砖讘 Ruby 讛诪驻转讞讜转 讘诪讬诇讜谉 讛诐 诪住讜讙 Symbol 讜讘 JavaScript 诪讚讜讘专 注诇 诪讞专讜讝讜转 专讙讬诇讜转. 讛拽讜讚 讛诪拽讘讬诇 讛讗诪讬转讬 讘专讜讘讬 讗讙讘 讛讬讛 谞专讗讛 讻讱:
data = { 'a' => 10, 'b' => 20 }
讗讜 谞住转讻诇 注诇 驻讬讬转讜谉 讜谞拽讘诇 讗转 讛专讜砖诐 砖讛诇讜诇讗讛 讛讝讜:
for i in range(10):
    print(i)
讚讜诪讛 讘讗讬讝砖讛讜 讗讜驻谉 诇诇讜诇讗讛 讛讝讜 诪 JavaScript (注诐 拽爪转 注讝专讛 砖诇 lodash):
for (let i in _.range(10)) {
    console.log(i);
}
讜砖转讬 讛转讜讻谞讬讜转 讘讗诪转 诪讚驻讬住讜转 讗转 讗讜转讜 讚讘专 讗讘诇 注讜砖讜转 诪砖讛讜 讗讞专 诇讙诪专讬. 讘诪爪讬讗讜转 讛诪讬诇讛 of 讘 JavaScript 讛讬讗 讛讚专讱 诇讚诪讜转 讗转 讛讛转谞讛讙讜转 砖诇 驻讬讬转讜谉:
for (let i of _.range(10)) {
    console.log(i);
}
讗讬 转讗讬诪讜讬讜转 讻讗诇讛 讘讬谉 砖驻讜转 讛谉 讛谞讜专诪讛, 讜砖讜讜讛 诇讝讻讜专 讗转 讝讛 讘驻注诐 讛讘讗讛 砖诪砖讛讜 谞专讗讛 诇讻诐 诪讜讻专. 注讚讬祝 转诪讬讚 诇讜讜讚讗 拽讜讚诐 讘转讬注讜讚 砖讛拽讜讚 注讜砖讛 讗转 诪讛 砖讛转讻讜讜谞转诐.

ToCode
1 422
# 诪讛 注讜爪专 讗讜转讱? 诪讛 注讜爪专 讗讜转讱 诪诇诇诪讜讚 讗转 讛讟讻谞讜诇讜讙讬讛 讛讞讚砖讛 讛讝讗转 砖讻讜诇诐 诪讚讘专讬诐 注诇讬讛? 诪诇谞住讜转 诇讻转讜讘 讗驻诇讬拽爪讬讬转 诪讜讘讬讬诇 讘 React Native? 诪诇讻转讜讘 驻专讜讬拽讟 爪讚 讘 Clojure 讗讜 讘 Elixir 讗讜 讗驻讬诇讜 讘 Node.JS? 诪诇讛转讞讬诇 诇讛砖转诪砖 讻诪讜 砖爪专讬讱 讘 Git? 讗谞讬 讬讜讚注 砖讝讛 诇讗 讘讙诇诇 讞讜住专 讬讚注. 讬砖 讬讜转专 诪讚讬 诪讬讚注 砖诪住转讜讘讘 讘专砖转. 讬砖 讬讜转专 诪讚讬 Tutorials 讜讛讜专讗讜转 讜诪讚专讬讻讬诐 讻讱 砖讻诇 诪讬 砖专讜爪讛 讛讬讜诐 讬讻讜诇 诇讛转讞讬诇 讜讙诐 诇讛诪砖讬讱. 讗谞讬 讙诐 讬讜讚注 砖讝讛 诇讗 讞讜住专 讝诪谉. 讗谞讞谞讜 诪讘诇讬诐 讘讬讜讟讬讜讘, 讘驻讬讬住讘讜拽, 讘 ynet, 讘讗讬谞住讟讙专诐 讜讗驻讬诇讜 讘谞讟驻诇讬拽住. 讻砖诪砖讛讜 诪注谞讬讬谉 讗讜转讱 讗转讛 诪爪诇讬讞 诇诪爪讜讗 讗转 讛讝诪谉. 讻诇 诪讛 砖爪专讬讱 讘砖讘讬诇 诇拽讘诇 注讜讚 砖注讛 讘讬讜诐 讝讛 诇讛转谞转拽 讜诇讞住讜诐 讗转 讻诇 讛讗转专讬诐 讛讗诇讛. 讜诪讛 砖谞砖讗专 讗讞专讬 砖讛讜专讚谞讜 讗转 讛讬讚注 讜讛讝诪谉 谞拽专讗 驻讞讚. 讛驻讞讚 诪讻讬砖诇讜谉, 讛专爪讜谉 讛拽诪讗讬 "诇讞住讜讱" 讘讗谞专讙讬讛 讜诇讗 诇讛讬讻谞住 诇讛专驻转拽讗讜转, 讛讛专讙砖讛 砖诪讛 砖注讘讚 注讚 注讻砖讬讜 讘讟讞 讬诪砖讬讱 诇注讘讜讚. 讜讛讻讬 谞讜专讗 - 讛转讞讜砖讛 砖讙诐 讗诐 讗谞讬 讗砖讘 诇注砖讜转 讗转 讛讚讘专 讛讝讛 讘讞讬讬诐 诇讗 讗爪诇讬讞 诇讛讙讬注 诇专诪讛 砖爪专讬讱 讘砖讘讬诇 诇讛讬讜转 讟讜讘 讘讝讛, 讜诇讻谉 讞讘诇 注诇 讛讛砖拽注讛. 讛讗讘住讜专讚 讛讜讗 砖讻讻诇 砖讗谞讞谞讜 讬讜转专 诪诪讜拽讚讬 诪讟专讛 讜讬讜转专 诪讘讬谞讬诐 砖爪专讬讱 诇诇诪讜讚 诇诪砖诇 专讬讗拽讟 讘砖讘讬诇 诇讛转拽讚诐, 讻讱 拽讟谉 讛住讬讻讜讬 砖谞爪诇讬讞 诇爪诇讜讞 讗转 讛转讛讜诐 讜讘讗诪转 诇讛讬讜转 讟讜讘讬诐 讘讝讛. 讛转讞讜砖讛 砖讗转讛 诇讗 诪转拽讚诐 诇砖讜诐 诪拽讜诐 诇诪专讜转 砖讗转讛 诇讜诪讚 讻诇 讬讜诐 砖讘讜注 讗讞专讬 砖讘讜注 讛讬讗 驻砖讜讟 讬讜转专 诪讚讬 诪转住讻诇转. 诪讛 注讜砖讬诐? 讝讜专拽讬诐 讛爪讬讚讛 讗转 讛诪讟专讛 讜讗转 讛诪讬拽讜讚 讜注讜讘专讬诐 诇讚讘专 注诇 讛专讙诇讬诐. 讗谞讞谞讜 诇讗 谞讻谞住讬诐 注讻砖讬讜 诇拽讜专住 讘讜 讘讞讜讚砖讬讬诐 讛拽专讜讘讬诐 谞注讘讜讚 拽砖讛 讜讗讞专讬 讝讛 谞讚注 讗转 讛讚讘专 讜讗驻砖专 讬讛讬讛 诇谞讜讞, 讗诇讗 讗谞讞谞讜 讘转讛诇讬讱 砖诇 诇讛驻讜讱 诇讘谞讬 讗讚诐 砖讬讜砖讘讬诐 砖注讛 讻诇 讬讜诐 诇诇诪讜讚 专讬讗拽讟. 讘诇讬 拽砖专 诇诪讛 砖拽讜专讛 讘注讘讜讚讛 讗讜 讗诐 讝讛 诪爪诇讬讞 讗讜 诇讗 诪爪诇讬讞. 诇讻谉 砖讗诇讛 讬讜转专 讟讜讘讛 转讛讬讛 "诪讛 注讜爪专 讗讜转讱 诪诇讛转讞讬诇 讛讬讜诐 诇讘谞讜转 讛专讙诇 讞讚砖, 讛专讙诇 砖诇 诇讬诪讜讚 讬讜诪讬?". 讬砖 诇讱 讝诪谉, 讗转讛 讬讜讚注 讗讬驻讛 诪转讞讬诇讬诐, 讜讛讻讬 讞砖讜讘 - 讗讬 讗驻砖专 诇讛讬讻砖诇.

ToCode
1 422
# 讞讬讚转 专讬讗拽讟: 讚讘专讬诐 砖讗讬 讗驻砖专 诇注砖讜转 注诐 Custom Hooks 讛诪注讘专 诇专讬讗拽讟 讛讜拽住 驻转讞 讛专讘讛 讻讬讜讜谞讬 诪讞砖讘讛 讞讚砖讬诐 讜讚专讻讬诐 讞讚砖讜转 诇砖讬诪讜砖 讞讜讝专 讘拽讜讚. 专讜讘谉 注讜讘讚讜转 讗讘诇 讻诪讜 讘讻诇 讟讻谞讜诇讜讙讬讛 讙诐 讻讗谉 讬砖 讻诪讛 讘讗讙讬诐 砖诇讗 诇讙诪专讬 驻砖讜讟 诇讝讛讜转 讘诪讘讟 专讗砖讜谉. 砖讬诪讜 诇讘 诇拽讜讚 讛讘讗 砖诪讙讚讬专 Custom Hook 讻讚讬 诇讬爪讜专 讘讗讜驻谉 讗讜讟讜诪讟讬 讗诇诪谞讟 Input 讬讞讚 注诐 砖讚讛 讘住讟讬讬讟 砖诪转讗讬诐 诇讜:
function useTextField() {
  const [value, setValue] = useState('');

  function Input(props) {
    return <input type="text" value={value} onChange={(e) => setValue(e.target.value)} />
  }

  return [Input, value, setValue];
}
讜讛谞讛 讙诐 住谞讚讘讜拽住 拽讟谉 砖诪专讗讛 诪讛 拽讜专讛 讻砖诪谞住讬诐 诇讛砖转诪砖 讘拽讜讚. 讜讛讞讬讚讛 砖诇 讛讬讜诐 - 诪讛 拽讜专讛 讘转讬讘讛 砖诇讗 讗诪讜专 讛讬讛 诇拽专讜转? 讗讬驻讛 讛讘讗讙 讘拽讜讚 砖讙讜专诐 诇讘注讬讛? 讜讗讬讱 讘讻诇 讝讗转 讛讬讬转诐 讻讜转讘讬诐 讗转 讛拽讜讚 讛讝讛 讘爪讜专讛 砖注讜讘讚转? 讬讜讚注讬诐 讗转 讛转砖讜讘讛? 诪讜讝诪谞讬诐 诇讻转讜讘 讛住讘专 讘转讙讜讘讜转.

ToCode
1 422
# 讚讜讙诪讗讜转 砖诇讗 注讜讘讚讜转 讛讚讜讙诪讗 讛专讗砖讜谞讛 诪讛转讬注讜讚 砖诇 asyncio 讛讬讗 讘讚讬讜拽 讛住讬讘讛 砖转讬注讜讚 讛讜讗 诇讗 讛诪拽讜诐 讛讗讬讚讗诇讬 诇诇诪讜讚 诪诪谞讜 注诇 讟讻谞讜诇讜讙讬讛 讞讚砖讛 砖讗转诐 诇讗 诪讻讬专讬诐 讘讻诇诇. 讛讬讗 谞专讗讬转 讻讱:
>>> import asyncio

>>> async def main():
...     print('hello')
...     await asyncio.sleep(1)
...     print('world')

>>> asyncio.run(main())
hello
world
讝讛 注讜讘讚. 讜讝讛 诪讚驻讬住 hello 讜 world 讘讚讬讜拽 讻诪讜 砖讛诐 讻转讘讜 砖讬拽专讛. 讜讝讛 讙诐 诪砖转诪砖 讘讛诪讜谉 诪讬诇讬诐 砖诇 asyncio 讻诪讜 await, async 讜 asyncio.run. 讜讘讻诇 讝讗转 讗诐 诇讗 讛讬讬转讬 讬讜讚注 诪讛 讻诇 讛驻拽讜讚讜转 讛讗诇讛 注讜砖讜转 诇讗 讞讜砖讘 砖讛讬讬转讬 诪专讜讜讬讞 讛专讘讛 诪拽专讬讗转 讛讚讜讙诪讗 讻讗谉. 拽讜讚诐 讻诇 讻讬 讬砖 诇驻讬讬转讜谉 讗转 time.sleep 讜讗驻砖专 诇讻转讜讘 讘讚讬讜拽 讗转 讗讜转讛 转讜讻谞讬转 注诐 sleep 讜诇拽讘诇 拽讜讚 讬讜转专 拽爪专 讜讬讜转专 讘专讜专. 讜讬讜转专 诪讝讛, 讻讬 讛讚讜讙诪讗, 诇诪专讜转 砖讛讬讗 注讜讘讚转 讜讻讜诇诇转 讗转 讻诇 讛诪讬诇讬诐, 诇讗 诪专讗讛 讗转 讛拽住诐 砖诇 转讻谞讜转 讗住讬谞讻专讜谞讬 讜讗转 讛讚讘专讬诐 讛讬驻讬诐 讘 asyncio. 讗转讛 拽讜专讗 讗转 讛拽讜讚 讜讻诇 诪讛 砖讘讗 诇讱 讝讛 诇砖讗讜诇 "讗讘诇 讘砖讘讬诇 诪讛 爪专讬讱 讗转 讝讛?". 讜讗讙讘 讛讚讜讙诪讗讜转 诇讗 诪砖转驻专讜转 讘讛诪砖讱 讚祝 讛转讬注讜讚. 讛住讬讘讛 诪讗讜讚 驻砖讜讟讛, 讛讬讗 诪砖讜转驻转 诇讛专讘讛 讚驻讬 转讬注讜讚 讘专砖转 讜谞拽专讗转 诪讬拽讜讚. 讛诪讟专讛 砖诇 讚祝 讛转讬注讜讚 讛讬讗 诇讛住讘讬专 诇讗谞砖讬诐 砖讬讜讚注讬诐 诪讛 讝讛 转讻谞讜转 讗住讬谞讻专讜谞讬 讗讬讱 讛注住拽 讛讝讛 注讜讘讚 讘 asyncio. 讗诐 诇讗 讛讙注转诐 讻砖讗转诐 讻讘专 讬讜讚注讬诐 诪讛 讝讛 转讻谞讜转 讗住讬谞讻专讜谞讬 讜诇诪讛 讗转诐 爪专讬讻讬诐 讗讜转讜, 讗转诐 驻砖讜讟 诇讗 拽讛诇 讛讬注讚 砖诇讛诐. 讜诇拽专讜讗 讚祝 转讬注讜讚 讻砖讗转讛 诇讗 拽讛诇 讛讬注讚 砖诇讜 讝讜 讗讞转 讛讞讜讜讬讜转 讛诪转住讻诇讜转 砖诇 讛注讜诇诐. 诪讛 注讜砖讬诐? 讘转讜专 讛转讞诇讛 讻讚讗讬 诇转转 诇讟讻谞讜诇讜讙讬讛 讛讝讚诪谞讜转 讙诐 讗诐 讛转讬注讜讚 诇讗 诪讚讘专 讘讚讬讜拽 讗诇讬讻诐. 讘专砖转 讬砖 注讜讚 讛诪讜谉 诪拽讜专讜转 诪讬讚注 讜拽诇 诇诪爪讜讗 讚讜讙诪讗讜转 讜讚驻讬 讛住讘专 谞讜住驻讬诐 砖讗讜诇讬 讬讜转专 诪转讗讬诪讬诐 诇专诪讛 砖诇讻诐. 诇诪转拽讚诪讬诐 讬讜转专 砖讜讜讛 诇谞住讜转 诇讛讘讬谉 诇诪讬 讛转讬注讜讚 讻谉 诪讬讜注讚 讜讗讬讝讛 讚讘专讬诐 讗转诐 爪专讬讻讬诐 诇诇诪讜讚 讻讚讬 诇讛讬讜转 诪住讜讙诇讬诐 诇拽专讜讗 讜诇讛讘讬谉 讗讜转讜 (讙诐 讗讞专讬 砖讛讘谞转诐 讗转 讛讟讻谞讜诇讜讙讬讛 诪诪拽讜诐 讗讞专). 诇讛驻讜讱 诇诪转讻谞转讬诐 砖讬讜讚注讬诐 诇拽专讜讗 讜诇讛讘讬谉 讗转 讛转讬注讜讚 讘专砖转 讝讜 讗讞转 讛诪砖讬诪讜转 讛讞砖讜讘讜转 讻砖诇讜诪讚讬诐 驻专讚讬讙诪讛 讗讜 讟讻谞讜诇讜讙讬讛 讞讚砖讛. 讜讗讙讘 asyncio 讘砖讘讬诇 诇讗 诇讛住转讘讱 注诐 讛转讬注讜讚 讘讬讜诐 讞诪讬砖讬 讘讘讜拽专 讗注讘讬专 讜讜讘讬谞专 砖诇 砖注讛 注诇讬讜 诇诪转讞讬诇讬诐 诇讙诪专讬 讜砖诐 讗专讗讛 讚讜讙诪讗讜转 砖讬诪讞讬砖讜 讘爪讜专讛 诪讗讜讚 讘专讜专讛 诇诪讛 爪专讬讱 讗讜转讜, 讗讬讱 诇注讘讜讚 讗讬转讜 讜讙诐 讗注谞讛 注诇 讻诇 砖讗诇讛. 专讜爪讬诐 诇讘讜讗? 专拽 爪专讬讱 诇讛讬讻谞住 诇讚祝 讛专讬砖讜诐 讜诇诇讞讜抓 注诇 讛讻驻转讜专 讛讻转讜诐. 谞转专讗讛.

ToCode
1 422
# 讟讬驻 HTML - 讛讙讚专转 type 注诇 讻驻转讜专 讘讟讜驻住 讗诇诪谞讟 button 砖诇 HTML 讻讜诇诇 讗转 讛讬讻讜诇转 讛诪讜驻诇讗讛 诇讛讙讬砖 讟讜驻住 讘爪讜专讛 讗讜讟讜诪讟讬转 讗诐 讛讻驻转讜专 谞诪爪讗 讘转讜讱 讛讟讜驻住. 讘诪讬诇讬诐 讗讞专讜转 讛拽讜讚 讛讘讗, 诇诪专讜转 砖诇讗 讻讜诇诇 讗诇诪谞讟 submit, 注讚讬讬谉 讬讙讬砖 讗转 讛讟讜驻住 讻砖诪砖转诪砖 讬诇讞抓 注诇 讛讻驻转讜专:
<form>
  <label>
    type something:
    <input type="text" name="text" />
  </label>
  
  <button>Save</button>
</form>
讛住讬讘讛 讛讬讗 讛诪讗驻讬讬谉 type 砖诇 讛讻驻转讜专: 讘专讬专转 讛诪讞讚诇 砖诇 诪讗驻讬讬谉 讝讛 讛讬讗 submit 讜讛讬讗 讗讜诪专转 砖讗诐 讛讻驻转讜专 砖诇讻诐 谞诪爪讗 讘转讜讱 讟讜驻住, 诇讞讬爪讛 注诇讬讜 转讙讬砖 讗转 讛讟讜驻住. 转砖诪讞讜 诇讙诇讜转 砖诇诪讗驻讬讬谉 type 讬砖 注讜讚 砖谞讬 注专讻讬诐 讗驻砖专讬讬诐: 讗诐 谞讙讚讬专 讘转讜专 type 讗转 讛注专讱 reset 谞拽讘诇 讻驻转讜专 砖讬讗驻住 讗转 讻诇 讛驻拽讚讬诐 诇注专讱 讘专讬专转 讛诪讞讚诇 砖诇讛诐, 讜讬讜转专 诪注谞讬讬谉 - 讗诐 谞讙讚讬专 讘转讜专 type 讗转 讛注专讱 button 讛讻驻转讜专 驻砖讜讟 诇讗 讬注砖讛 讻诇讜诐 讻砖诇讜讞爪讬诐 注诇讬讜. 讘爪讜专讛 讻讝讜 诇讗 转爪讟专讻讜 诇拽专讜讗 诇 preventDefault 诪讛 JavaScript 砖诇讻诐 讻讚讬 诇诪谞讜注 讗转 讛讙砖转 讛讟讜驻住. 讘拽讜讚 讝讛 谞专讗讛 讻讱:
<form>
  <label>
    type something:
    <input type="text" name="text" />
  </label>
  
  <button type="button">Save</button>
</form>

ToCode
1 422
# 讙讚讜诇 注诇讬讬 状诇拽专讜讗 注讻砖讬讜 住驻专 诪拽爪讜注讬 诪拽爪讛 诇拽爪讛? 拽爪转 讙讚讜诇 注诇讬讬状 状诇讻转讜讘 诪注专讻转 讜讜讘 砖讗谞砖讬诐 诪诪砖 讬砖转诪砖讜 讘讛? 讙讚讜诇 注诇讬讬 讗讞讬状 状诇讻转讜讘 诪注专讻转 讘讚讬拽讜转 讗讜讟讜诪讟讬转 讘诪拽讜诐 诇讛专讬抓 讛讻诇 诇讘讚? 专注讬讜谉 讟讜讘 讗讘诇 讻专讙注 讟讬驻讛 讙讚讜诇 注诇讬讬状 讻砖讗转诐 讗讜诪专讬诐 砖诪砖讛讜 "讙讚讜诇 注诇讬讻诐" 诇诪讛 讗转诐 诪转讻讜讜谞讬诐? 讗谞讬 诇讗 讞讜砖讘 砖讗谞砖讬诐 讬讙讬讚讜 "讙讚讜诇 注诇讬讬" 注诇 诪砖讛讜 砖讛讜讗 诇讙诪专讬 诇讗 拽砖讜专 诇注讜诇诐 砖诇讛诐, 讻诇讜诪专 讗诐 注讻砖讬讜 讗谞讬 讗爪讬注 诇诪讬砖讛讜 诇诇诪讜讚 爪诇讬诇讛 讛讜讗 诇讗 讬讙讬讚 砖讝讛 讙讚讜诇 注诇讬讜. 诇讗, 讛"讙讚讜诇 注诇讬讬" 砖诪讜专 诇诪拽专讬诐 砖讗谞讞谞讜 讻谉 讘转讜讱 诪砖讛讜 讗讘诇 诪专讙讬砖讬诐 砖讛讚讘专 砖讘讬拽砖讜 诪讗讬转谞讜 诇注砖讜转 讛讜讗 专讞讜拽 诪讗讝讜专 讛谞讜讞讜转 砖诇谞讜. 讗诐 讗谞讬 讘讜讚拽 转讜讻谞讛 讜诪讬砖讛讜 讬讘讜讗 诇讛爪讬注 诇讬 诇转讻谞转 讘砖讘讬诇讜 诪注专讻转 讜讜讘 讗谞讬 诇讗 讗讙讬讚 砖讝讛 讙讚讜诇 注诇讬讬 讗诇讗 讗住讘讬专 砖讗谞讬 诇讗 诪转讻谞转 讜诇讗 讬讜讚注 诇讻转讜讘 拽讜讚 诇诪注专讻讜转 讗讬谞讟专谞讟. 诇注讜诪转 讝讗转 讗诐 讻讘专 讘谞讬转讬 诪讬谞讬住讬讬讟 讗讜 讚祝 谞讞讬转讛 讜讗谞讬 讬讜讚注 拽爪转 诪讬 谞讙讚 诪讬 讘注住拽 讛讝讛, 讗讘诇 注讚讬讬谉 诇讗 驻讬转讞转讬 讗祝 诪注专讻转 讜讜讘 讙讚讜诇讛 讜诪讬砖讛讬 讘讗讛 诇讛爪讬注 诇讬 诇讛讬讜转 讛诪驻转讞 讛专讗砖讬 讘住讟讗专讟-讗驻 砖诇讛, 讝讛 讛专讙注 砖讛"讙讚讜诇 注诇讬讬" 拽讜驻抓 诇专讗砖. 讙讚讜诇 注诇讬讬 讗讜诪专 砖讗谞讬 讬讜讚注 驻讞讜转 讗讜 讬讜转专 诪讛 讛爪注讚 讛专讗砖讜谉, 讗讘诇 讗讬谉 诇讬 诪讜砖讙 讗讬讱 讬专讗讜 讛爪注讚 讛讞诪讬砖讬 讗讜 讛砖讘讬注讬. 讙讚讜诇 注诇讬讬 讗讜诪专 砖讛讚讘专 讛讝讛 砖讗转讛 诪讘拽砖 诪诪谞讬 诇注砖讜转 注诇讜诇 诇讛讬讻砖诇. 讗讘诇 讙讚讜诇 注诇讬讬 讝讜 讙诐 讛讚诇转 讚专讻讛 讗谞讞谞讜 讙讚诇讬诐 讘注爪诪谞讜, 讜诇讻谉 讝讛 讛诪拽讜诐 砖讛讻讬 讻讚讗讬 诇讛转注拽砖 诇诇讻转 讗诇讬讜. 讻谉, 讞诇拽 讙讚讜诇 诪讛驻专讜讬拽讟讬诐 砖讙讚讜诇讬诐 注诇讬谞讜 讜谞谞住讛 诇注砖讜转 讬讬讻砖诇讜, 讜讝讛 讘住讚专. 讻讬 讛驻专讜讬拽讟讬诐 砖讬爪诇讬讞讜 讬讛讬讜 讗诇讛 砖讬拽讞讜 讗讜转谞讜 诇专诪讛 讛讘讗讛.

ToCode
1 422
# 讗驻砖专 诇讚诇讙 注诇 讛转专讙讬诇? 讛专讘讛 驻注诪讬诐 讻砖讗谞讬 砖讜诪注 讛专爪讗讛 讗讜 拽讜专讗 讗讬讝讛 Tutorial 讘专砖转 讬砖 诇讬 转讞讜砖讛 砖讗谞讬 诪讘讬谉 讗转 诪讛 砖拽专讗转讬 讗讜 砖诪注转讬, 讙诐 讻砖讛讚讘专 讛讝讛 砖拽专讗转讬 注诇讬讜 讗讜 砖诪注转讬 讗讜转讜 讛讜讗 讚讬 诪住讜讘讱. 讝讛 诇讗 转诪讬讚 讻讻讛 讻诪讜讘谉 - 讜转诪讬讚 讗驻砖专 诇讛讬讝讻专 讘砖讬注讜专讬诐 讛讗诇讛 讘讗讜谞讬讘专住讬讟讛 砖讛讬讬转 讬讜爪讗 诪讛诐 注诐 转讞讜砖讛 砖讗转讛 讬讜讚注 讛专讘讛 驻讞讜转 诪诪讛 砖讬讚注转 拽讜讚诐, 讗讘诇 讛讬讜诐 注诐 讛砖讬驻讜专 讘讗讬讻讜转 讛诪专爪讬诐 讜讞讜诪专讬 讛诇讬诪讜讚 讗谞讞谞讜 讬讜转专 讜讬讜转专 谞讞砖驻讬诐 诇讞讜诪专讬 诇讬诪讜讚 砖讙诐 讬讜讚注讬诐 诇转转 诇讗谞砖讬诐 讗转 讛讛专讙砖讛 砖讛诐 讛讘讬谞讜. 讛讚讘专 讛专讗砖讜谉 砖爪专讬讱 诇讛讙讬讚 注诇 讛讛专讙砖讛 讛讝讗转 讛讜讗 砖讝讛 诇讙诪专讬 诪讻讜讜谉. 讻砖讗谞讬 讘转讜专 诪专爪讛 讘讜谞讛 诪注专讱 砖讬注讜专 讗谞讬 讬讜讚注 讗讬讝讛 讚讘专讬诐 讗谞讬 专讜爪讛 砖讗谞砖讬诐 讬讘讬谞讜 诪讛砖讬注讜专, 讗讬讝讛 讚讘专讬诐 讗谞讬 专讜爪讛 砖讗谞砖讬诐 讬专讙讬砖讜 砖讛诐 讛讘讬谞讜 诪讛砖讬注讜专 讜注诇 讗讬讝讛 讚讘专讬诐 讗谞讬 诪讜讻谉 诇讚诇讙 讘砖讘讬诇 诇转转 讗转 讛讛专讙砖讛 砖"讛讘谞转讬". 讛讛专讙砖讛 砖讛讘谞转讬 讛讬讗 谞拽讜讚转 讛讛转讞诇讛 诇讛诪砖讱 讞拽讬专讛 讜诇讻谉 讛讬讗 诪讗讜讚 讞砖讜讘讛, 讙诐 讘诪讞讬专 讛诪转拽转 讞诇拽 诪讛驻讬谞讜转 讛讞讚讜转. 讗讜 讘诪讬诇讬诐 讗讞专讜转 - 讗诐 诪讚专讬讻讛 诇讜拽讞转 拽讘讜爪转 诪讟讬讬诇讬诐 诇讟驻住 注诇 讛专, 讛诪讟讬讬诇讬诐 注砖讜讬讬诐 诇讛专讙讬砖 讘住讜祝 讛讟讬讜诇 砖讛诐 讛砖讬讙讜 诪砖讛讜 讙讚讜诇 讜讛爪诇讬讞讜 诇讟驻住 注诇 讛讛专, 讗讘诇 讞诇拽 诪讛讛专讙砖讛 讛讝讗转 谞讜讘注 诪讛诪讬讜诪谞讜转 砖诇 讗讜转讛 诪讚专讬讻讛 诇拽讞转 讗讜转诐 讘砖讘讬诇讬诐 砖诪转讗讬诪讬诐 诇讛诐, 诇拽讘讜注 讗转 讛注爪讬专讜转 讘诪拽讜诪讜转 讛谞讻讜谞讬诐 讜诇讛专讗讜转 讗讜 诇住驻专 讗转 讛讚讘专讬诐 砖讬转谞讜 诪讜讟讬讘爪讬讛 诇讛诪砖讬讱. 讛诪专讞拽 讘讬谉 讟讬讜诇 讻讝讛 诇讟讬讜诇 注爪诪讗讬 (诇诇讗 诪讚专讬讱) 诇专讗砖 讛讛专 讛讜讗 注爪讜诐, 诇诪专讜转 砖诪讚讜讘专 讘讗讜转讜 诪住诇讜诇. 注讚 讻诪讛 砖讛讞讜讜讬讛 砖诇 讟讬讜诇 注诇 讛专 注诐 诪讚专讬讱 注砖讜讬讛 诇讛讬讜转 讻讜住 讛转讛 砖诇讻诐, 诪讬 砖专讜爪讛 诇讛讬讜转 诪讟驻住 讛专讬诐 诪拽爪讜注讬 讬爪讟专讱 诇注砖讜转 讛专讘讛 讬讜转专 诪讝讛: 诇讞讝讜专 砖讘讜注 讗讞专讬 讜诇谞住讜转 诇注砖讜转 讗转 讛诪住诇讜诇 诇讘讚, 诇讞讝讜专 讞爪讬 砖谞讛 讗讞专讬 讜诇谞住讜转 讗转 讛诪住诇讜诇 讘注讜谞转 砖谞讛 讗讞专转, 诇讞讝讜专 砖注转讬讬诐 讗讞专讬 讜诇谞住讜转 讗转 讛诪住诇讜诇 讘砖注讛 讗讞专转, 诇讞讝讜专 讜诇谞住讜转 讗转 讛诪住诇讜诇 注诐 谞注诇讬讬诐 讗讞专讜转 讗讜 爪讬讜讚 讗讞专, 诇谞住讜转 诇注砖讜转 讗转 讛注爪讬专讜转 讘诪拽讜诪讜转 讗讞专讬诐 讜注讜讚 讗诇祝 砖讬谞讜讬讬诐 拽讟谞讬诐 讻讗诇讛. 诇诪拽爪讜注谞讬诐 讗讜 诪拽爪讜注谞讬诐 诇注转讬讚 - 讛讚讜讙诪讗讜转 讛谉 专拽 谞拽讜讚转 讛讛转讞诇讛 讜讛诪住诇讜诇 讛诪讜讻专 讛讜讗 专拽 讚专讱 讗讞转 诇讛讙讬注 诇诪注诇讛. 讗谞讞谞讜 诪砖转驻专讬诐 讚专讱 谞讬住讜讬, 讟注讬讛 讜诇讘住讜祝 讙讬诇讜讬 砖诇 讚专讻讬诐 讞讚砖讜转, 讟讜讘讜转 讬讜转专 讗讜 驻讞讜转 诪讗诇讛 砖专讗讬谞讜 讘诪讚专讬讱.