uz
Feedback
ToCode

ToCode

Kanalga Telegram鈥檇a o鈥榯ish

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

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
ToCode
1 419
# 讬砖 诇讱 讟讻谞讗讬 诪讝讙谞讬诐 诪讜诪诇抓? - 讬砖 诇讱 讛谞讚讬诪谉 诇讛诪诇讬抓 诇讬? - 讬砖 诇讱 讟讻谞讗讬 诪讝讙谞讬诐 讟讜讘 诇讛诪诇讬抓? - 讬砖 诇讱 讟讻谞讗讬 诪讝讙谞讬诐 砖诪讻讬专 讟讜讘 诪讝讙谞讬 讟讜专谞讚讜? - 讬砖 诇讱 讟讻谞讗讬 诪讝讙谞讬诐 砖诪讻讬专 讟讜讘 诪讝讙谞讬 讟讜专谞讚讜 讬砖谞讬诐? - 讬砖 诇讱 讟讻谞讗讬 诪讝讙谞讬诐 砖诪讻讬专 讟讜讘 诪讝讙谞讬 LG 转注砖讬讬转讬讬诐 诪砖谞转 2008? 砖讬诪讜 诇讘 讗讬讱 讻诇 砖讗诇讛 讛讜驻讻转 诇讛讬讜转 讬讜转专 住驻爪讬驻讬转 讜砖讬诪讜 诇讘 诇转讞讜砖讛 砖诇谞讜 讻砖讗谞讞谞讜 拽讜专讗讬诐 讗转 讛砖讗诇讛. 讻讻诇 砖讬讜专讚讬诐 诇诪讟讛 讘专砖讬诪讛 讬讛讬讜 驻讞讜转 住驻拽讬诐 砖讬讻讜诇讬诐 诇注讝讜专 诇讬, 讜诇讻谉 诪讞讬专 讛转讬拽讜谉 讬注诇讛 诪砖诪注讜转讬转. 讘转讜专 驻专讬诇讗谞住专讬诐 讘转讜讻谞讛 讗转诐 讬讻讜诇讬诐 诇讘讞讜专 讗转 讛诪砖讘爪转 砖诇讻诐. 讘诪拽讜诐 诇讛讬讜转 "诪转讻谞转转 Mobile" 讗转 讬讻讜诇讛 诇讘讞讜专 诇讛讬讜转: - 讝讗转 砖讬讜讚注转 诇诪爪讜讗 讜诇转拽谉 讝诇讬讙讜转 讝讬讻专讜谉 讘讬讬砖讜诪讬 Objective C - 讝讗转 砖讬讜讚注转 诇讛转讗讬诐 讗转 讛拽讜讚 诇讻诇 诪讻砖讬专讬 Android 砖讬爪讗讜 讗讬 驻注诐 - 讝讗转 砖讬讜讚注转 诇讻转讜讘 驻诇讗讙讬谞讬诐 诇 React Native 讻讚讬 诇讞讘专 讬讜转专 讬讻讜诇讜转 砖诇 讛诪讻砖讬专 诇讗驻诇讬拽爪讬讜转 RN - 讝讗转 砖讬讜讚注转 讗讬讱 诇转拽谉 讗转 讛拽讜讚 讻讚讬 砖讗驻诇 讬住讻讬诪讜 诇讛讻谞讬住 讗转 讛讗驻诇讬拽爪讬讛 诇讞谞讜转 讛讘讞讬专讛 诇注砖讜转 诪砖讛讜 诪讗讜讚 住驻爪讬驻讬 砖诪讜专讛 诇驻专讬诇讗谞住专讬诐 讘诇讘讚 讜讝讗转 讛讛讝讚诪谞讜转 砖诇谞讜 讘讛砖讜讜讗讛 诇砖讻讬专讬诐. 讗诐 讻讘专 讛讞诇讟转诐 诇讛讬讜转 驻专讬诇讗谞住专讬诐 讬讛讬讛 诇讻诐 讛专讘讛 讬讜转专 诪砖转诇诐 诇砖讞拽 讗转 讛诪砖讞拽 讜诇讛讙讬注 讛讻讬 诪诪讜拽讚讬诐 砖讗转诐 讬讻讜诇讬诐.

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

ToCode
1 419
# 讛驻讜谞拽爪讬讛 reduce 讜住讬诪谉 讞诇讜拽讛 讘 19 讗讞讚 讛驻讜住讟讬诐 砖注诇讛 讛讬讜诐 讘讛讗拽专谞讬讜讝 住讬驻专 注诇 住讬诪谉 讞诇讜拽讛 讞诪讜讚 讘 19: 1. 诪住转讻诇讬诐 注诇 诪住驻专 诪讬诪讬谉 诇砖诪讗诇 (住讬驻专讛 讗讞专讬 住讬驻专讛) 2. 讻讜驻诇讬诐 讗转 讛住讬驻专讛 讛讬诪谞讬转 讘讬讜转专 讘 2 讜诪讞讘专讬诐 诇讛 讗转 讛住讬驻专讛 讛讘讗讛 3. 讗转 讛转讜爪讗讛 讻讜驻诇讬诐 讘 2 讜诪讞讘专讬诐 诇讛 讗转 讛住讬驻专讛 讛讘讗讛 4. 讜讻讱 诪诪砖讬讻讬诐 注讚 砖讛讙注谞讜 诇诪住驻专 拽讟谉 讬讜转专, 砖讗讜诇讬 诇讙讘讬讜 谞讚注 讗诐 讛讜讗 诪转讞诇拽 讘-9. 讘拽讜讚 讝讛 谞专讗讛 讻讱:
function reduceMod19(n) {
  let accumulator = 0;
  while (n > 0) {
    let digit = n % 10;
    accumulator = accumulator * 2 + digit;
    n = Math.floor(n / 10);
  }

  return accumulator;
}
讛拽讜讚 注讜砖讛 讘讚讬讜拽 诪讛 砖讛讜讗 爪专讬讱 诇注砖讜转 讗讘诇 诪讘讞讬谞转 拽专讬讗讜转 讗谞讬 讞讜砖讘 砖讗驻砖专 诇砖驻专: 讻砖讗谞讬 诪住转讻诇 注诇 讛诇讜诇讗讛 讘诪讘讟 专讗砖讜谉 诇讗 讘专讜专 砖讝讜 诇讜诇讗讛 砖专爪讛 注诇 讻诇 讛住驻专讜转 砖诇 讛诪住驻专 诪讬诪讬谉 诇砖诪讗诇. 讝讛 诪砖讛讜 砖讗谞讬 爪专讬讱 诇拽专讜讗 诪诪砖 讗转 讛拽讜讚 讘砖讘讬诇 诇讛讘讬谉 讗讜转讜. 讛诪讟专讛 砖诇 驻拽讜讚转 reduce 讛讬讗 诇讛讜爪讬讗 讛讞讜爪讛 讗转 讛住讬驻讜专 讛讝讛. 诇讘讜讗 讜诇讛讙讬讚 诇拽讜专讗 - 砖诪注 讬砖 驻讛 诪砖讛讜 砖专抓 注诇 讻诇 讛讗诇诪谞讟讬诐 砖诇 讛专砖讬诪讛 讗讞讚 讗讞讚. 讬讜转专 诪讝讛, 讛讚讘专 讛讝讛 讬讞讝讬专 诇讱 转讜爪讗讛 讘讜讚讚转 砖转讛讬讛 诪讜砖驻注转 拽爪转 诪讻诇 讗诇诪谞讟. 讘诪讬诇讬诐 讗讞专讜转 reduce 诇讜拽讞转 讗转 讻诇 讛拽讜讚 讜讛讜驻讻转 讗讜转讜 诇诪砖驻讟:
digits.reduce((acc, val) => acc * 2 + val, 0);
讗谞讬 讛讜诇讱 诇注讘讜专 注诇 讻诇 讛专砖讬诪讛 砖谞拽专讗转 digits 讗讞讚-讗讞讚, 讜注讘讜专 讻诇 讗诇诪谞讟 讗谞讬 讗讻驻讜诇 讗转 诪讛 砖讞讬砖讘转讬 注讚 注讻砖讬讜 讘-2 讜讗讜住讬祝 讗转 讛讚讘专 讛讞讚砖. 讻诪讜讘谉 讘砖讘讬诇 砖讝讛 讬注讘讜讚 讗谞讬 爪专讬讱 诇讛驻讜讱 讗转 讛诪住驻专 诇专砖讬诪讛 砖诇 住驻专讜转 诪讛住讜祝 诇讛转讞诇讛 讜住讱 讛讻诇 砖讬讻转讜讘 讛驻讜谞拽爪讬讛 谞专讗讛 讻讱:
function reduceMod19(n) {
  let digits = String(n).split('').map(d => Number(d));
  return digits.reverse().reduce((acc, val) => acc * 2 + val, 0);
}
讛转讜爪讗讛 讛讬讗 拽讜讚 砖诪住驻专 讟讜讘 讬讜转专 讗转 讛住讬驻讜专 砖诇讜: 讘诪拽讜诐 诇讛爪讬讙 诇讜诇讗讛 讻诇诇讬转 讘讛 讗谞讬 爪专讬讱 诇讛转讗诪抓 讻讚讬 诇讛讘讬谉 诪讛 讛诪讘谞讛, 讗谞讬 诪拽讘诇 讻讗谉 诪讘谞讛 诪讗讜讚 住驻爪讬驻讬 讜爪专讬讱 诇讛转讗诪抓 专拽 讘砖讘讬诇 诇讛讘讬谉 诪讛 注讜砖讬诐 注诐 讻诇 讗诇诪谞讟. 讻诪讜讘谉 砖诪砖讬拽讜诇讬 讘讬爪讜注讬诐 拽砖讛 诇讛讗诪讬谉 砖讛讬讬转讬 讻讜转讘 拽讜讚 讻讝讛 讘注讜诇诐 讛讗诪讬转讬 讘讛拽砖专 讛讝讛 砖诇 住讬诪谉 讞诇讜拽讛 讘 19, 讜讘讻诇 讝讗转 砖讜讜讛 诇讛转专讙诇 诇砖转讬 讛讙讬砖讜转 讜诇讛转讬讞住 诇 reduce 讘转讜专 注讜讚 住讜讙 砖诇 诇讜诇讗讛 - 诇讜诇讗讛 砖诪住驻专转 住讬驻讜专 讬讜转专 诪砖诪注讜转讬 诪注讜讚 诇讜诇讗转 for.

ToCode
1 419
# 讗讬讱 诇讛驻讜讱 讗转 讻转讬讘转 讛 CSS 诇拽爪转 驻讞讜转 诪转住讻诇转 诪转讻谞转讬诐 诇讗 讗讜讛讘讬诐 诇讻转讜讘 CSS 讜讬砖 诇讝讛 讻诇 诪讬谞讬 住讬讘讜转. 讗驻讬诇讜 讗谞砖讬 Front End 专讘讬诐 砖驻讙砖转讬 讛注讚讬驻讜 诇讛转诪拽讚 讘爪讚 讛讟讻谞讬 讬讜转专 砖诇 驻讬转讜讞 JavaScript 讗讜 React 讜诇讛砖讗讬专 讗转 讛 CSS 诇诪注爪讘讬诐. 讘诪拽讘讬诇 讻讻诇 砖讛注讜诇诐 砖诇 讛 CSS 讛转驻转讞 讻讱 讝讛 专拽 注讜讚 讬讜转专 讛驻讞讬讚 专讘讬诐 诪讗讬转谞讜: 注讻砖讬讜 诇诇诪讜讚 Flexbox 讜 grid? 讜讘讗讬讝讛 讚驻讚驻谞讬诐 讻诇 讚讘专 注讜讘讚? 讜诪诪讬诇讗 诪讛 砖讗谞讬 诇讗 讗注砖讛 讝讛 诇讗 讬专讗讛 讟讜讘 讗讝 讘砖讘讬诇 诪讛 诇讛转讗诪抓. 爪专讬讱 诇讛讙讬讚 诇讻转讜讘 CSS 讻砖诇讗 讬讜讚注讬诐 CSS 讝讜 讘讗诪转 讞讜讜讬讛 拽砖讛, 讜讙诐 讻砖讬讜讚注讬诐 CSS 讬砖 讘讻转讬讘讛 砖诇讜 讗转讙专讬诐 砖讜谞讬诐 诪讗诇讛 砖诇 讻转讬讘转 拽讜讚. 讛谞讛 讻诪讛 讟讬驻讬诐 砖注讜讝专讬诐 诇讬 诇讛讬讜转 驻讞讜转 诪转讜住讻诇 讻砖讗谞讬 讻讜转讘 CSS 讜讗谞讬 诪拽讜讜讛 砖讬注讝专讜 讙诐 诇讻诐: ## 讞讘专讜 注讜讚 诪住讱 讻转讬讘转 CSS 讛讬讗 转讛诇讬讱 讜讬讝讜讗诇讬 讝讛 讗讜诪专 砖讗谞讞谞讜 讞讬讬讘讬诐 诇专讗讜转 讗转 讛转讜爪讗讛 讘讝诪谉 砖讻讜转讘讬诐 讗转 讛拽讜讚. 讗诐 讗转诐 讻诇 讛讝诪谉 注讜讘专讬诐 讘讬谉 讛讞诇讜谉 砖诇 讛 IDE 诇讞诇讜谉 砖诇 讛讚驻讚驻谉 讬讛讬讛 诇讻诐 拽砖讛 诇讛转专讻讝 讜转转注讬讬驻讜 讬讜转专 诪讛专. 讘讻转讬讘转 CSS 讻讚讗讬 诇讛砖转诪砖 诪讬谞讬诪讜诐 讘砖谞讬 诪住讻讬诐 (讗诐 讬砖 讬讜转专 讝讛 转诪讬讚 讟讜讘): 讗讞讚 诇讚驻讚驻谉 讜讛砖谞讬 诇 IDE. 讗谞讬 诇讗 讗讜讛讘 诇讛砖转诪砖 讘讚驻讚驻谉 讘转讜专 IDE 诇诪专讜转 砖讻诇讬 讛驻讬转讜讞 砖诇 讚驻讚驻谞讬诐 讛讬讜诐 讚讬 讟讜讘讬诐, 讗讘诇 讗诐 讗转诐 讻谉 讗讜讛讘讬诐 讝讛 讘住讚专 - 驻砖讜讟 讛驻专讬讚讜 讗转 讻诇讬 讛驻讬转讜讞 诇讞诇讜谉 谞驻专讚 诪讛讚驻讚驻谉 讜砖讬诪讜 讗讜转诐 注诇 讛诪住讱 讛砖谞讬. 讟专讬拽 谞讜住祝 砖注讜讝专 诇讗 诇注讬讬祝 讗转 讛注讬谞讬讬诐 讛讜讗 讻驻转讜专 Device Mode 讘讻诇讬 讛驻讬转讜讞: 讘诪拽讜诐 诇讛讙讚讬诇 讜诇讛拽讟讬谉 讗转 讛讞诇讜谉 讗转诐 驻讜转讞讬诐 Device Mode 讜诪讙讚讬诇讬诐 讜诪拽讟讬谞讬诐 专拽 讗转 讛讞诇拽 砖诪专讗讛 讗转 讛讗转专. 讻讱 讙诐 砖讗专 讛讟讗讘讬诐 砖诇讻诐 谞砖讗专讬诐 讘讙讜讚诇 讛专讙讬诇 讜讙诐 讗转诐 专讜讗讬诐 转诪讬讚 讗转 讛讙讜讚诇 讛讗诪讬转讬 注诇讬讜 讗转诐 诪驻转讞讬诐. ## 讛驻注讬诇讜 Hot Reloading 讘讛谞讞讛 砖讗转诐 诪砖转诪砖讬诐 讘 IDE 讞讬爪讜谞讬 讛讚讘专 讛讗讞专讜谉 砖讗转诐 专讜爪讬诐 讝讛 诇诇讞讜抓 F5 讗讞专讬 讻诇 砖讬谞讜讬. 讞讘专讜 讗转 讛讞讜讟讬诐 讻讚讬 诇拽讘诇 Hot Reloading 讻诇讜诪专 砖讻诇 驻注诐 砖讗转诐 砖讜诪专讬诐 讘爪讜专讛 诪讬讬讚讬转 讞诇讜谉 讛讚驻讚驻谉 诪转注讚讻谉. 讛讬讜诐 讬砖 诇 Webpack 讻讘专 诪谞讙谞讜谉 砖讗驻讬诇讜 诇讗 讟讜注谉 诪讞讚砖 讗转 讛注诪讜讚 讻砖讛 CSS 诪转注讚讻谉, 讻讱 砖讗转诐 讬讻讜诇讬诐 诇砖谞讜转 CSS 讜诇专讗讜转 讗转 讛讛砖驻注讛 诪讬讚 讘诇讬 诇讗讘讚 驻注讜诇讜转 砖注砖讬转诐 讘 JavaScript 讗讜 讟拽住讟 砖讛讻谞住转诐 讘砖讚讜转. ## 讗诇 转砖转诪砖讜 讘 Framework 讗讞转 讛住讬讘讜转 讛诪专讻讝讬讜转 诇转讬住讻讜诇 讘讻转讬讘转 CSS 讛讬讗 讛爪讜专讱 诇专讬讘 注诐 讛驻专讬讬诪讜讜专拽 讗讜 讬讜转专 谞讻讜谉 诇谞讛诇 爪讬驻讬讜转. 讻讜诇诐 讗讜诪专讬诐 砖注诐 Twitter Bootstrap 转讜讻诇讬 诇讘谞讜转 讗转专 转讜讱 专讙注, 讜讛谞讛 讗转 讻讘专 砖诇讜砖讛 讬诪讬诐 诪谞住讛 诇讗专讙谉 讗转 讛讙专讬讚 砖讬专讗讛 讻诪讜 砖爪专讬讱. 住讬讘讛 砖谞讬讛 诇转住讻讜诇 讛讬讗 砖讬砖 讻诇 讻讱 讛专讘讛 Frameworks 讻讱 砖讻砖诇讗 讛讜诇讱 注诐 讗讞讚 讗谞讞谞讜 诪转驻转讬诐 诇谞住讜转 注讜讚 讗讞讚 讜注讜讚 讗讞讚 讜讻讻讛 讘诪拽讜诐 诇讘谞讜转 讗转专 讗谞讞谞讜 专拽 谞转拽注讬诐 注诇 讘讞讬专转 驻专讬讬诪讜讜专拽. 讛讗诪转 砖注诐 讛讬讻讜诇讜转 砖诇 CSS 讛讬讜诐 爪专讬讱 诪注讟 诪讗讜讚 讛讗拽讬诐 讻讚讬 砖讚讘专讬诐 讬注讘讚讜 讜讬专讗讜 讟讜讘. 讗诐 讗转诐 讬讜讚注讬诐 诇讛砖转诪砖 讻诪讜 砖爪专讬讱 讘讬讻讜诇讜转 砖诇 CSS 讬讛讬讛 诇讻诐 讬讞住讬转 拽诇 诇讘谞讜转 讻诇 注讬爪讜讘 砖讗转诐 爪专讬讻讬诐. ## 诇讬诪讚讜 CSS 讜讻讗谉 讗谞讞谞讜 诪讙讬注讬诐 诇讗讞讚 讛讟讬驻讬诐 讛讻讬 讞砖讜讘讬诐: 拽砖讛 诪讗讜讚 诇讻转讜讘 拽讜讚 讻砖诇讗 诪讻讬专讬诐 讗转 讛砖驻讛 (讗转诐 讻讘专 讬讜讚注讬诐 讗转 讝讛 讘转讜专 诪转讻谞转讬诐) - 讜讗讜转讜 讛讻诇诇 转讜驻住 讙诐 诇讙讘讬 CSS. 诇讻诇 驻住讬拽 讘 CSS 讬砖 诪砖诪注讜转 讜讛住讘专. 讜讗谞讬 讬讜讚注 砖 CSS 讝讛 讗讜拽讬讬谞讜住 讜讬砖 讛专讘讛 讬讻讜诇讜转 讜讛专讘讛 诪讗驻讬讬谞讬诐 注诐 砖讛诪砖诪注讜转 砖诇讛诐 诇讗 讗讬谞讟讜讗讬讟讬讘讬转 (讛讬讜砖 z-index); 讜注讚讬讬谉 讛注爪讛 诇讙讘讬 拽讜讚 转讜驻住转 讻讗谉: 诪爪讗转诐 驻讜住讟 讗讜 转砖讜讘讛 讘 Stack Overflow 砖诪住讘讬专讬诐 讗讬讱 诇注砖讜转 诪砖讛讜? 注讻砖讬讜 诇讻讜 诇拽专讜讗 讘转讬注讜讚 讘 MDN 诪讛 讻诇 诪讬诇讛 讘驻讬转专讜谉 讗讜诪专转 讻讚讬 砖转讜讻诇讜 诇讻转讜讘 讗转 讛 CSS 讛讝讛 讗爪诇讻诐 讜讙诐 诇讛转讗讬诐 讗讜转讜 诇讗转专 砖诇讻诐. (诪讞驻砖讬诐 讘住讬住 讟讜讘 讘 CSS 讜讗诇 讘讟讜讞讬诐 讗讬驻讛 诇讛转讞讬诇? 谞讜 讬砖 诇谞讜 拽讜专住 诇讝讛. 讛讜讗 谞拽专讗 Front End 讜讬砖 讘讜 驻专拽 讚讬 讟讜讘 注诇 CSS, 讻讜诇诇 讛讬住讜讚讜转 讜讙诐 讛谞讜砖讗讬诐 讛讞讚砖讬诐 讻诪讜 flexbox 讜 grid). 讬砖 诇讻诐 讟讬驻讬诐 谞讜住驻讬诐 砖讛讜驻讻讬诐 讗转 讻转讬讘转 讛 CSS 诇讞讜讜讬讛 谞注讬诪讛 讬讜转专? 住驻专讜 诇讬 讘转讙讜讘讜转 讻讚讬 砖讙诐 诇讬 讬讛讬讛 拽诇 讘讞讬讬诐.

ToCode
1 419
# 诇讗 诇讛讗诪讬谉 砖 C++ 拽讬讘诇讛 讗转 讛讗讜驻专讟讜专 讛讝讛 诇驻谞讬 JavaScript 讻讘专 砖谞讬诐 砖诪讚讘专讬诐 注诇 讗讜驻专讟讜专 讛 Pipeline 讘 JavaScript 砖讬讛驻讜讱 讗转 讛讻转讬讘讛 讛驻讜谞拽爪讬讜谞讗诇讬转 讘砖驻讛 诇拽诇讛 讬讜转专, 讗讘诇 谞讻讜谉 诇讛讬讜诐 讛讜讗 注讚讬讬谉 讘 stage 1 讜诇讗 谞专讗讛 砖诪转拽讚诐. 讜讛谞讛 驻转讗讜诐 驻讙砖转讬 讗转 讛诪砖驻讟 讛讘讗 讘转讬注讜讚 注诇 ranges 砖诇 C++20: > Range adaptors accept viewable range as their first arguments and return a view. If an adaptor takes only one argument, it can also be called using the pipe operator: if C is a range adaptor object and R is a viewable_range, these two expressions are equivalent: 讜讗诐 讗转诐 诇讗 讘讟讜讞讬诐 诪讛 讝讛 讗讜诪专 讛诐 讙诐 谞讜转谞讬诐 砖诐 讗转 讚讜讙诪转 讛拽讜讚 讛讘讗讛 诇讛诪讞砖讛:
#include <vector>
#include <ranges>
#include <iostream>
 
int main()
{
    std::vector<int> ints{0,1,2,3,4,5};
    auto even = [](int i){ return 0 == i % 2; };
    auto square = [](int i) { return i * i; };
 
    for (int i : ints | std::views::filter(even) | std::views::transform(square)) {
        std::cout << i << ' ';
    }
}
砖讬诪讜 诇讘 诇拽讜 讛讗谞讻讬: 1. 诪转讞讬诇讬诐 讘讜拽讟讜专 砖诇 讛诪住驻专讬诐 诪-0 注讚 5. 2. 砖讜诇讞讬诐 讗讜转讜 诇驻讜谞拽爪讬讛 filter 讻讚讬 诇讛砖讗讬专 专拽 讗转 讛诪住驻专讬诐 讛讝讜讙讬讬诐. 3. 讗转 讛转讜爪讗讛 砖讜诇讞讬诐 诇驻讜谞拽爪讬讛 transform (砖讘讻诇 诪拽讜诐 讗讞专 讛讬讬谞讜 拽讜专讗讬诐 诇讛 map) 讜诪驻注讬诇讬诐 讗转 square 注诇 讻诇 讗讞讚 诪讛诪住驻专讬诐 讛讝讜讙讬讬诐 砖拽讬讘诇谞讜 住讱 讛讻诇 讬讜讚驻住:
0 4 16
谞讜, 讗讝 讛讗诐 C++ 讛讜诇讻转 诇讛讬讜转 诪讙谞讬讘讛 砖讜讘? 拽砖讛 诇讬 诇专讗讜转 讗转 讝讛 拽讜专讛. 讜注讚讬讬谉 谞讞诪讚 诇专讗讜转 转讘谞讬讜转 砖讗谞讬 讗讜讛讘 诪讜爪讗讜转 讗转 讚专讻谉 诇注讜讚 砖驻讜转.

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

ToCode
1 419
# 讗诇讬讗住 诇拽讜讘抓 讛讗讞专讜谉 讛专讘讛 驻注诪讬诐 讗谞讬 诪讜爪讗 讗转 注爪诪讬 专讜爪讛 诇讛讙讬讚 诪砖讛讜 注诇 讛拽讜讘抓 讛注讚讻谞讬 讘讬讜转专, 讚讜讙诪讛 驻砖讜讟讛 讛讬讗 讻谞讬住讛 诇转讬拽讬讬转 讛讛讜专讚讜转 讜砖诐 讗谞讬 专讜爪讛 诇驻转讜讞 讗转 讛拽讜讘抓 讛讗讞专讜谉 砖讛专讙注 讛讜专讚转讬. 讘住讬讬专 讛拽讘爪讬诐 讛讬讬谞讜 讬讻讜诇讬诐 讘拽诇讜转 诇住讚专 讗转 讛拽讘爪讬诐 诇驻讬 转讗专讬讱 讬爪讬专讛 讜驻砖讜讟 诇诇讞讜抓 注诇 讛拽讜讘抓 讛专讗砖讜谉 讗讜 讛讗讞专讜谉 讘专砖讬诪讛. 讗讘诇 诪讛 注讜砖讬诐 诪砖讜专转 讛驻拽讜讚讛? 讛驻拽讜讚讛 讛专讗砖讜谞讛 砖拽讜驻爪转 诇专讗砖 讛讬讗 ls -t 砖诪住讚专转 讗转 专砖讬诪转 讛拽讘爪讬诐 诇驻讬 转讗专讬讻讬 注讚讻讜谉. 讛驻拽讜讚讛 讛讘讗讛 诪爪讬讙讛 讗转 3 讛拽讘爪讬诐 讛注讚讻谞讬讬诐 讘讬讜转专 讘转讬拽讬讛:
$ ls -rtlh | tail -3
讗讘诇 讝讛 注讚讬讬谉 讚讜专砖 copy-paste 讗诐 专讜爪讬诐 "诇注砖讜转 诪砖讛讜" 注诐 讛拽讜讘抓 讛讗讞专讜谉. 注讚 砖讗谞讞谞讜 谞讝讻专讬诐 讘住讬诪谉 讛 $() 讛诪讜驻诇讗 砖诇 bash. 讗诐 讛讚讘专 讛注讚讻谞讬 讘讬讜转专 讛讜讗 转讬拽讬讛 讗讝 讛驻拽讜讚讛 讛讘讗讛 转讬讻谞住 讗诇讬讛:
cd $(ls -rt | tail -1)
讜讘砖讘讬诇 砖讬讛讬讛 拽诇 讬讜转专 诇讛砖转诪砖 讘专爪祝 讗谞讬 讬讜爪专 注讘讜专讜 alias:
alias latest='ls -rt | tail -1'
讜注讻砖讬讜 讗驻砖专 诇讻转讜讘 驻拽讜讚讜转 讻诪讜:
rm $(latest)
讻讚讬 诇诪讞讜拽 讗转 讛拽讜讘抓 讛讗讞专讜谉 砖讛讜专讚转讬, 讗讜:
$ xdg-open $(latest)
讻讚讬 诇讛专讬抓 讗讜转讜 讘转讜讻谞讬转 讘专讬专转 讛诪讞讚诇 砖诇 讛诪注专讻转.

ToCode
1 419
# 讛爪讛专转 讻讜讜谞讜转 讬讜转专 诪讚讬 驻注诪讬诐 讜讘诪讬讜讞讚 讘砖驻讜转 讚讬谞诪讬讜转 讗谞讞谞讜 诪砖转诪砖讬诐 讘拽讜讚 讙谞专讬 诪讚讬 讘诇讬 诇讛爪讛讬专 注诇 讛讻讜讜谞讜转 砖诇谞讜 - 诪讛 砖诪讜讘讬诇 诇讘讗讙讬诐 诇讗 爪驻讜讬讬诐 砖诇驻注诪讬诐 讙诐 拽砖讛 诇诪爪讜讗 讗讜转诐. 讛住讬驻讜专 砖诇谞讜 讛讬讜诐 拽砖讜专 诇转专讙讬诇 专讚讜拽爪讬讬转 驻讜诇讬诪专讬诐. 讛诪砖讬诪讛 讘转专讙讬诇 讛讬讗 诇拽讘诇 诪讞专讜讝转 砖诇 讗讜转讬讜转 讘讗谞讙诇讬转 讜诇讞驻砖 讘讛 专爪驻讬诐 砖诇 讗讜转 讙讚讜诇讛 讜诪讬讚 讗讞专讬讛 讗讜转讛 讗讜转 讘拽讟谉, 讗讜 讛讛讬驻讱, 讗讜转 拽讟谞讛 讜诪讬讚 讗讞专讬讛 讗讜转讛 讗讜转 讘讙讚讜诇 - 诇讚讜讙诪讛 aA, Bb, fF 讜讻谉 讛诇讗讛. 讻诇 驻注诐 砖诪讜爪讗讬诐 专爪祝 讻讝讛 讬砖 诇诪讞讜拽 讗讜转讜 讜讗讝 诇讛诪砖讬讱 讘诇讜诇讗讛 诇讞驻砖 专爪驻讬诐 讘诪讞专讜讝转 讛讞讚砖讛 砖讛转拽讘诇讛. 讘注讝专转 while 讜讙讬砖讛 讚专讱 讗讬谞讚拽住 诇诪讞专讜讝转 讛驻讬转专讜谉 注砖讜讬 诇讛讬专讗讜转 驻砖讜讟:
def reduce_polymer(polymer):
    i = 0
    while i < len(polymer) - 1:
        if reducts_with(polymer[i], polymer[i+1]):
            polymer = polymer[0:i] + polymer[i+2:]
            i -= 1
            continue

        i += 1

    return polymer
    

def reducts_with(unit1, unit2):
    return abs(ord(unit1) - ord(unit2)) == 32
讜讘讙诇诇 砖讗谞讬 讗讞讚 砖转诪讬讚 讟讜注讛 讘讗讬谞讚拽住讬诐 讛诇讻转讬 讙诐 诇讻转讜讘 转讜讻谞讬转 讘讚讬拽讛 拽爪专讛:
from aoc2018day5 import reduce_polymer


def test_aA():
    assert reduce_polymer("aA") == ""


def test_bug():
    assert reduce_polymer("aAff") == "ff"


def test_abBA():
    assert reduce_polymer("abBA") == ""


def test_abAB():
    assert reduce_polymer("abAB") == "abAB"


def test_dabAcCaCBAcCcaDA():
    assert reduce_polymer("dabAcCaCBAcCcaDA") == "dabCBAcaDA"
砖注讘专讛 讘诇讬 讘注讬讛. 注讻砖讬讜 拽讞讜 专讙注 诇讞讝讜专 诇讛住转讻诇 注诇 讛驻讬转专讜谉 讜谞住讜 诇诪爪讜讗 讗转 讛讘讗讙. ... 注讜讚 诇讗 诪爪讗转诐? 砖讬诪讜 诇讘 诇讗讬谞讚拽住讬诐 ... 讛讘注讬讛 讛讬讗 讻诪讜讘谉 讛砖讜专讛 i -= 1. 讗诐 讛专讚讜拽爪讬讛 诪讜驻讬注讛 讘转讜 讛专讗砖讜谉 讘诪讞专讜讝转, i 讛讜驻讱 砖诇讬诇讬 讜讗讝 讛驻注诐 讛讘讗讛 砖谞讞驻砖 转讜讜讬诐 谞住转讻诇 注诇 讗诇诪谞讟讬诐 诪讛住讜祝 讜讻诇 讛诇讜讙讬拽讛 转讬砖讘专. 讛拽讜讚 讛讘讗 诇诪砖诇 诪讻谞讬住 讗转 讛驻讜谞拽爪讬讛 诇诇讜诇讗讛 讗讬谞住讜驻讬转:
if __name__ == "__main__":
    print(len(reduce_polymer("aAaAffaA")))
讻砖讗谞讬 诪住转讻诇 注诇 拽讜讚 讻讝讛 诪讛 砖诪讟专讬讚 讗讜转讬 讛专讘讛 诇驻谞讬 砖讗谞讬 谞讬讙砖 诇转拽谉 讗转 讛讘讗讙 讝讛 讗讬讱 诇讛驻讜讱 讗转 讛讘讗讙 讛讝讛 诇讬讜转专 讘专讜专, 讗讬讱 诇砖谞讜转 讗转 讛拽讜讚 讻讱 砖讬讛讬讛 讘专讜专 砖讬砖 砖诐 讘注讬讛 讛专讘讛 诇驻谞讬 讛诇讜诇讗讛 讛讗讬谞住讜驻讬转. 讜讻讗谉 讗谞讞谞讜 诪讙讬注讬诐 诇讚讘专 注诇 讛爪讛专转 讻讜讜谞讜转: 1. 讘砖讜专转 讛转谞讗讬 讗谞讞谞讜 讘讜谞讬诐 注诇 讝讛 砖 i 讗讬谞讜 砖诇讬诇讬, 讗讘诇 诇讗 诪讜讜讚讗讬诐 讗转 讝讛. 2. 讘砖讜专转 讛诪讞讬拽讛 讗谞讞谞讜 讘讜谞讬诐 注诇 讝讛 砖 i 讗讬谞讜 砖诇讬诇讬, 讜砖讜讘 诇讗 讚讜讗讙讬诐 诇住驻专 注诇 讝讛 诇讗祝 讗讞讚. 砖讬谞讜讬 专讗讜砖谉 砖诇 讛拽讜讚 讬拽专讘 讗讜转谞讜 诇讻转讬讘讛 谞讻讜谞讛 讙诐 讘诇讬 诇驻转讜专 讗转 讛讘注讬讛:
def reduce_polymer(polymer: str) -> str:
    i = 0
    while i < len(polymer) - 1:
        if has_reduction(polymer, i):
            polymer = remove_reduction(polymer, i)
            i -= 1
            continue
        i += 1
    return polymer


def has_reduction(polymer: str, i: int):
    if not 0 <= i < len(polymer) - 1:
        raise ValueError(f"Index should be >= 0, got {i}")
    unit1 = polymer[i]
    unit2 = polymer[i + 1]
    return abs(ord(unit1) - ord(unit2)) == 32


def remove_reduction(polymer: str, i: int):
    if not 0 <= i < len(polymer) - 1:
        raise ValueError(f"Index should be >= 0, got {i}")
    return polymer[0:i] + polymer[i+2:]
注讻砖讬讜 讗讜转讛 转讜讻谞讬转 讘讚讬拽讛 砖拽讜讚诐 注讘专讛 讘诇讬 讘注讬讛 讻讘专 谞讻砖诇转 注诐 讛讜讚注转 砖讙讬讗讛 注诇 讛讗讬谞讚拽住 讛砖诇讬诇讬 - 讜讝讛 诪注讜诇讛, 讻讬 讻砖讛讘讚讬拽讛 谞讻砖诇转 讗谞讞谞讜 讻讘专 讘 90% 诪讛驻讬转专讜谉. 讜讛诇拽讞 讛讻诇诇讬 讬讜转专 诪讛住讬驻讜专? 讘注讘讜讚讛 注诐 驻讜谞拽爪讬讜转 砖讬诇讜讘 砖诇 Type Hints 注诐 讘讚讬拽转 拽诇讟 讘讻谞讬住讛 诇驻讜谞拽爪讬讛 讬讻讜诇 诇注讝讜专 诇谞讜 诇诪爪讜讗 讘注讬讜转 讘拽讜讚 讛专讘讛 讬讜转专 诪讛专.

ToCode
1 419
# 讗讬讱 诇砖诪讜专 砖诇讗 讬讜住讬驻讜 诇讻诐 Attribute 讘讟注讜转 诇诪讞诇拽讛 讘驻讬讬转讜谉 讘驻讜住讟 砖注诇讛 诇讗 诪讝诪谉 讘 Python Tips 讛爪讬注 讬讛讜谞转谉 诇讛讙讚讬专 slots 讻讚讬 诇讘谞讜转 讗讜讘讬拽讟讬诐 拽讟谞讬诐 讬讜转专. 转讜爪讗转 诇讜讜讗讬 诪注谞讬讬谞转 砖诇 讛驻讬爪'专 讛讬讗 砖讛讜讗 诪讜谞注 诪讗谞砖讬诐 诇讛讜住讬祝 讘讟注讜转 Attribite 诇讗讜讘讬拽讟. 讗诐 讗转诐 诪砖转诪砖讬诐 讘 Type Hints (诪讛 讝讛 讗诐!? 讘专讜专 砖讗转诐 诪砖转诪砖讬诐 讘 Type Hints), 转砖诪讞讜 诇砖诪讜注 砖讬砖 讚专讱 驻砖讜讟讛 讬讜转专 诇拽讘诇 讗转 讗讜转讛 转讜爪讗转 诇讜讜讗讬 讘爪讜专讛 砖讙诐 诪住转讚专转 讟讜讘 注诐 讬专讜砖讛, 讙诐 诪讗驻砖专转 讜讬讚讜讗 讟讬驻讜住讬诐 讜讙诐 讻讜诇诇转 讻诪讛 驻讬谞讜拽讬诐 讘专诪转 讛拽讜讚. 讗谞讬 诪讚讘专 注诇 讛讚拽讜专讟讜专 dataclass. 讘讜讗讜 谞专讗讛 讗讬讱 讛讜讗 注讜讘讚. 谞谞讬讞 砖讬砖 诇谞讜 诪讞诇拽讛 讘砖诐 Person 讜诇讻诇 讗讜讘讬拽讟 诪住讜讙 Person 讗谞讞谞讜 专讜爪讬诐 诇讛讙讚讬专 讗转 讛砖讚讜转: 1. 砖讚讛 id 诪住讜讙 int. 2. 砖讚讛 name 诪住讜讙 str. 3. 砖讚讛 friends 诪住讜讙 诪注专讱 砖诇 Person. 讛拽讜讚 讘讗诪爪注讜转 Type Hints 讬专讗讛 讻讱:
from typing import List

class Person:
    id: int
    name: str
    friends: List['Person']
讜专拽 注讚 诇驻讛 讗谞讞谞讜 讻讘专 诪拽讘诇讬诐 讛诪讜谉 注讝专讛 诪 mypy 讻砖诪谞住讬诐 诇注砖讜转 砖讟讜讬讜转 砖讗住讜专 注诐 Person:
p = Person()
x = Person()
y = Person()

# Works great
p.id = 0
p.name = 'test'
p.friends = [x, y]

# Fails: 10 is not a Person
p.friends.append(10)

# Fails: foo is not a valid attribute
p.foo = 'bar'
讛驻注诇讛 砖诇 mypy 注诇 讛拽讜讚 谞讜转谞转:
a.py:22: error: Argument 1 to "append" of "list" has incompatible type "int"; expected "Person"
a.py:25: error: "Person" has no attribute "foo"
讜讗驻砖专 讛讬讛 诇住讬讬诐 驻讛 讗转 讛驻讜住讟 讗讘诇 诪讛 砖讘讗诪转 诪砖讚专讙 讗转 讛讙讬砖讛 讝讛 讛讚拽讜专讬讬讟讜专 dataclass. 讘专讙注 砖讗讜住讬祝 讗讜转讜 讗谞讬 诪拽讘诇: 1. 驻讜谞拽爪讬讬转 __init__ 讗讜讟讜诪讟讬转 砖诪拽讘诇转 讗转 讻诇 讛驻专诪讟专讬诐 砖讛讙讚专转讬 诇诪讞诇拽讛 2. 驻讜谞拽爪讬讬转 __repr__ 讗讜讟讜诪讟讬转 砖诪讞讝讬专讛 讬讬爪讜讙 讬讚讬讚讜转讬 砖诇 讛讗讜讘讬拽讟 3. 驻讜谞拽爪讬讬转 __eq__ 砖讘讜讚拽转 砖讬讜讜讬讜谉 诇驻讬 讻诇 讗讞讚 诪讛砖讚讜转 4. 驻讜谞拽爪讬讛 讘砖诐 dataclasses.asdict 砖诇讜拽讞转 讻诇 Data Class 讜诪讞讝讬专讛 dict 注诐 讻诇 讛诪讗驻讬讬谞讬诐 砖诇讜. 住讱 讛讻诇 讗讞专讬 讛诪专讛 诇砖讬诪讜砖 讘 dataclass 讛诪讞诇拽讛 砖诇讬 谞专讗讬转 讻讱:
from typing import List
from dataclasses import dataclass, field
import dataclasses


@dataclass
class Person:
    id: int
    name: str
    friends: List['Person'] = field(default_factory=list)


p = Person(0, 'foo')
x = Person(1, 'bar')
y = Person(2, 'buz')

print(dataclasses.asdict(p))
讘讝讻讜转 驻讜谞拽爪讬讬转 __init__ 砖谞讜爪专讛 讗讜讟讜诪讟讬转 讗谞讬 讬讻讜诇 诇讬爪讜专 讗讜讘讬拽讟讬诐 砖诇 Person 讜诇讛注讘讬专 讗诇讬讛诐 讗转 讻诇 讛驻专诪讟专讬诐 注讘讜专诐 诇讗 诪讜讙讚专 注专讱 讘专讬专转 诪讞讚诇 (讜讬砖 Type Hint 砖诪讜讜讚讗 讗转 讝讛), 讜讗谞讬 讬讻讜诇 诇拽专讜讗 诇 asdict 讻讚讬 诇拽讘诇 讗转 id, name 讜 friends 讘转讜讱 dict. 诇诪讬讚注 谞讜住祝 注诇 dataclasses 砖讜讜讛 诇拽专讜讗 讗转 讚祝 讛转讬注讜讚 讘拽讬砖讜专: https://docs.python.org/3/library/dataclasses.html

ToCode
1 419
# 诇诪讛 诇讗 诪讝诪讬谞讬诐 讗讜转讬 诇专讗讬讜谉 注讘讜讚讛 讻砖讗谞讞谞讜 砖讜诇讞讬诐 拽讜专讜转 讞讬讬诐 诇诪砖专讛 讛讘谉 讗讚诐 砖诪拽讘诇 讗转 讛讚祝 诇讗 讬讜讚注 注诇讬谞讜 讻诪注讟 讻诇讜诐, 讜讗诐 讝讛 诇讗 诪住驻讬拽 拽砖讜讞 讗讜转讜 讘谉 讗讚诐 讘爪讚 讛砖谞讬 砖诇 讛拽讜 讘讚专讱 讻诇诇 讬爪讟专讱 诇注讘讜专 注诇 注砖专讜转 拽讜专讜转 讞讬讬诐 讘讬讜诐 讻讚讬 诇住谞谉 讜诇讙讬讬住. 诇讻谉 诪讙讬讬住讬诐 (讗谞砖讬 HR 讜讙诐 诪谞讛诇讬诐 讟讻谞讬讬诐) 诇诪讚讜 诇讞诇拽 诇注爪诪诐 讘专讗砖 讗转 讛诪讜注诪讚讬诐 诇拽讟讙讜专讬讜转. 诪讛 砖讞砖讜讘 诇讝讻讜专 讘讞诇讜拽讛 诇拽讟讙讜专讬讜转 讝讛 砖讛讬讗 拽讜专讬转 诪诪砖 诪讛专, 讜诪砖驻讬注讛 注诇 讛讗讜驻谉 讘讜 讬拽专讗讜 讗转 讻诇 拽讜专讜转 讛讞讬讬诐 砖诇讻诐. 讛谞讛 专砖讬诪讛 拽爪专讛 砖诇 拽讟讙讜专讬讜转 诇讚讜讙诪讛 讻讚讬 砖谞讘讬谉 注诇 诪讛 讗谞讞谞讜 诪讚讘专讬诐 讻讗谉 (讛讻诇 诪谞讜住讞 讘诇砖讜谉 讝讻专 讘砖讘讬诇 砖讬讛讬讛 谞讜讞 诇讻转讜讘, 讙诐 谞砖讬诐 谞讜驻诇讜转 讘讚讬讜拽 诇讗讜转谉 拽讟讙讜专讬讜转 讗诇 转讚讗讙讜): ## 讛谞讬谞讙'讛 讛谞讬谞讙'讛 讛转讞讬诇 诇诇诪讜讚 诇转讻谞转 注讜讚 讘转讜专 讬诇讚, 驻转讞 讗转 讛住讟讗专讟-讗驻 讛专讗砖讜谉 讘转讬讻讜谉 讜诇讗讜谞讬讘专住讬讟讛 讛讜讗 讛诇讱 讻讬 注谞讬讬谉 讗讜转讜 诇诇诪讜讚 注诇 讗诇讙讜专讬转诪讬诐 讜住讬讘讜讻讬讜转. 讘爪讘讗 讛讜讗 讛讬讛 讘 8200 讻诪讜讘谉 讜讘砖谞讬诐 讛讗讞专讜谞讜转 注讘讚 讘讞讘专讜转 讛讛讬讬讟拽 讛诪驻讜专住诪讜转 讘专祝 讛拽讘诇讛 讛讙讘讜讛 砖诇讛谉. 诇谞讬谞讙'讛 讬砖 谞讬住讬讜谉 讘讚讬讜拽 讘讟讻谞讜诇讜讙讬讛 砖讗转诐 诪讞驻砖讬诐, 讛讜讗 讻讘专 讛讜讻讬讞 讗转 注爪诪讜 讘转驻拽讬讚讬诐 讚讜诪讬诐 讜讛讜讗 讬讻讜诇 诇讘讚 诇讘谞讜转 诪讜爪专 砖讘讬讜诐 专讙讬诇 讛讬讛 讚讜专砖 爪讜讜转 砖诇 5. 讞住专讜谞讜转? 讛讜讗 诪讞讜抓 诇转拽爪讬讘 砖诇讻诐 讜专讙讬诇 诇转专讘讜转 讛注讘讜讚讛 讘讙讜讙诇. ## 讛讞专讙讜诇 讛讞专讙讜诇 讛讜讗 诪转讻谞转 讟讜讘 砖讘讙诇诇 爪讬专讜祝 谞住讬讘讜转 讜诪讝诇 专注 讬爪讗 砖注讘讚 讘-5 诪拽讜诪讜转 砖讜谞讬诐 讘砖谞转讬讬诐 讛讗讞专讜谞讜转: 讞讘专讛 讗讞转 谞住讙专讛, 讘讗讞专转 住讙专讜 讗转 讛驻专讜讬拽讟 砖讛讜讗 注讘讚 注诇讬讜, 讘砖诇讬砖讬转 讛讬讛 诇讜 讘讜住 诪讛讙讬讛谞讜诐, 讘讗诪爪注 讛注讘讜讚讛 讘讞讘专讛 讛专讘讬注讬转 谞讜诇讚 诇讜 讬诇讚 专讗砖讜谉 讜讛讜讗 专爪讛 诇讛拽讚讬砖 讬讜转专 讝诪谉 诇诪砖驻讞讛 讜讛诪注住讬拽 讛讗讞专讜谉 讛讜爪讬讗 讗讜转讜 诇讞诇"转 讘讙诇诇 讛拽讜专讜谞讛. 讛讞专讙讜诇 诪讙讬注 注诐 谞讬住讬讜谉 专诇讜讜谞讟讬 讜谞专讗讛 砖注讘讚 注诇 驻专讜讬拽讟讬诐 诪注谞讬讬谞讬诐. 讛专讘讛 驻注诪讬诐 讬讛讬讛 诇讜 讙诐 驻专讜讬拽讟 爪讚 讟讜讘 诇讛专讗讜转, 讻诇 讛住讬讘讜转 讘讙诇诇谉 讻诪注讟 讗驻砖专 讬讛讬讛 诇砖讻讜讞 诪讛讛讬住讟讜专讬讛 讛讘注讬讬转讬转 砖诇讜. ## 讛诪砖拽讬注谉 讛诪砖拽讬注谉 讬讙讬注 讗诇讬讻诐 讗讞专讬 砖住讬讬诐 讘讛爪讟讬讬谞讜转 转讜讗专 砖谞讬 讜注诐 讛诪诇爪讜转 讟讜讘讜转 诪讛诪注住讬拽讬诐 讛拽讜讚诪讬诐 砖诇讜. 讝讛 讛讘谉 讗讚诐 砖谞砖讗专 转诪讬讚 讬讜转专 砖注讜转 讘诪砖专讚, 诪转注拽砖 诇讛讻谞讬住 砖讬讟讜转 注讘讜讚讛 诪讜讚专谞讬讜转 讜讗祝 驻注诐 诇讗 讬讻转讜讘 Fixed some stuff 讘讛讜讚注转 拽讜诪讬讟. ## 讛谞转拽注 讛谞转拽注 讘讚讬讜拽 注讝讘 诪拽讜诐 注讘讜讚讛 诪讗讜讚 谞讜讞 讗讞专讬 注砖专 砖谞讬诐 讜注讻砖讬讜 诪讞驻砖 讗转 讛讗转讙专 讛讘讗 砖诇讜. 注诇 讛谞讬讬专 讬砖 诇讜 讗转 讛谞讬住讬讜谉 砖讗转诐 诪讞驻砖讬诐 讗讘诇 诇讗 讘讚讬讜拽 诪转讗讬诐 讘讙讬专住讗讜转 - 讛讜讗 注讘讚 注砖专 砖谞讬诐 讘 CSS 讗讘诇 注讚讬讬谉 诇讗 诪讻讬专 驻诇拽住讘讜拽住 讻讬 讛诪讜爪专 砖诇讛诐 讛讬讛 诪讬讜注讚 诇砖讜拽 讛讗专讙讜谞讬 讜讚专砖 转诪讬讻讛 讘讚驻讚驻谞讬 IE 讬砖谞讬诐. 讛讘注讬讛 讛诪专讻讝讬转 砖诇 讛谞转拽注 讛讬讗 砖讛讜讗 注讚讬讬谉 诇讗 诪讘讬谉 讗转 讛驻注专 讘讬谉 讛讻诇讬诐 砖讛讜讗 诪讻讬专 诇讻诇讬诐 砖讗转诐 爪专讬讻讬诐 - 讜诪讘讞讬谞转讜 ES6 讝讛 专拽 注讜讚 Syntax 诇诇诪讜讚 ("诇讗 注讘讚谞讜 注诐 讝讛 讘讬讜诐 讬讜诐 讗讘诇 拽专讗转讬 拽爪转 讜讗谞讬 诪讻讬专 讗转 讛诪讬诇讬诐 讛讞讚砖讜转"). 讞住专讜谞讜转? 讛驻注专 讛专讘讛 讬讜转专 讙讚讜诇 诪诪讛 砖讛讜讗 诪讚诪讬讬谉. ## 讛爪注讬专 讛谞诇讛讘 拽讜专讜转 讛讞讬讬诐 砖诇 讛诪讜注诪讚 讛爪注讬专 讛谞诇讛讘 诪诇讗讬诐 讘 Buzz Words: 讛讜讗 讻讘专 讻转讘 驻专讜讬拽讟讬诐 讘 React, Angular, Vue 讜讙诐 讘 Svelte. 讛讜讗 讛砖转诪砖 讘 Node.JS, 讻转讘 Lambda Functions, 砖诪专 诪讬讚注 注诇 S3 讜讘 Redshift 讜讛砖转诪砖 讘 SNS 讻诪讜讘谉. 讬砖 诇讜 5 驻专讜讬拽讟讬 爪讚 注诇 讙讬讟讛讗讘 讛讻讜诇诇讬诐 砖讬诪讜砖 讘讗讬谞住讜祝 驻专讬讬诪讜讜专拽讬诐 讜讞讘讬诇讜转 转讜讻谞讛. 讗诐 诪讬砖讛讜 讻转讘 注诇 讝讛 驻讜住讟 讘 Hackernews 转讛讬讜 讘讟讜讞讬诐 砖讝讛 讬讜驻讬注 讗爪诇讜 讘拽讜讚. 讗诐 转讬砖讘讜 讘拽住诪讬讜 讛爪注讬专 讛谞诇讛讘 讛讜诇讱 诇讛讬讻谞住 诇驻专讜讬拽讟 砖诇讻诐 讻专讜讞 住注专讛 讜讬转讘诇 讗转 讛驻专讜讬拽讟 讘诪讬拽专讜 住专讘讬住讬诐 讜讗讬谞住讜祝 住驻专讬讜转 拽讜讚 讜讻诪讜讘谉 Design 砖诪转讻谞谉 注砖专 砖谞讬诐 拽讚讬诪讛. 讞住专讜谞讜转? 讘讛讬注讚专 谞讬住讬讜谉 讗诪讬转讬 讜讛讘谞讛 专爪讬谞讬转 砖诇 讛讘住讬住, 讛爪注讬专 讛谞诇讛讘 讬注砖讛 讟注讜讬讜转 砖讬注诇讜 诇讻诐 讛讜谉. 讘讜讗讜 谞讙讬讚 砖讗谞讬 诇讗 讛讬讬转讬 诪转谞讚讘 诇转讞讝拽 讗转 讛拽讜讚 砖诇讜. ## 诇诪讬 讗讻驻转 讜诪讛 注讜砖讬诐 讗诐 讗转诐 诇讗 诪爪诇讬讞讬诐 诇拽讘诇 讝讬诪讜谞讬诐 诇专讗讬讜谞讜转 住讬讘讛 讗讞转 讬讻讜诇讛 诇讛讬讜转 砖讛拽讜专讜转 讞讬讬诐 砖诇讻诐 诪拽讜讟诇讙讬诐 讘拽讟讙讜专讬讛 讛诇讗 谞讻讜谞讛. 讗诐 专讜讘 讛讗谞砖讬诐 砖拽讜专讗讬诐 讗转 讛拽讜专讜转 讞讬讬诐 砖诇讻诐 诪专讙讬砖讬诐 砖注讜诪讚 诪讜诇诐 讛爪注讬专 讛谞诇讛讘, 讗讝 诇讗 诪砖谞讛 讻诪讛 驻专讜讬拽讟讬-爪讚 讜 Buzzwords 转讜住讬驻讜 讝讛 驻砖讜讟 诇讗 讬注讝讜专 诇讻诐. 诇诪注砖讛 讗转诐 专拽 诪讞诪讬专讬诐 讗转 讛诪爪讘. 诪爪讚 砖谞讬 讗诐 诪讬 砖拽讜专讗 讗转 讛拽讜专讜转 讞讬讬诐 诪专讙讬砖 砖诪讜诇讜 讬讜砖讘 讛诪砖拽讬注谉 讗讜 讛谞讬谞讙'讛 讗讜诇讬 讛讜讗 讬讞讜砖 诪讗讜讬诐 诪专砖讬诪转 讛讛讬砖讙讬诐 讜讬讞砖讜讘 砖讗转诐 Over Qualified. 讜讗诐 讘讟注讜转 拽讬讟诇讙讜 讗转讻诐 讘转讜专 讞专讙讜诇 讛住讬讻讜讬 砖讬讝诪讬谞讜 讗转讻诐 诇专讗讬讜谉 讛讜讗 砖讜讘 诇讗 讙讘讜讛 讻讬 讗谞砖讬诐 驻讜讞讚讬诐 诇讛讬讜转 讛讗拽住 讛讘讗 砖诇讻诐. 讗讝 诪讛 注讜砖讬诐? 拽讜讚诐 讻诇 爪专讬讱 诇讛讬讜转 诪讜讚注讬诐. 讗讬谉 讗祝 讗讞讚 讘转注砖讬讛 砖讬讙讬讚 "诪爪讟注专 诇讗 讛转拽讘诇转 讻讬 讗转讛 诪拽驻抓 讘讬谉 注讘讜讚讜转", 转诪讬讚 讬讛讬讜 诇讗谞砖讬诐 讚专讻讬诐 讬驻讜转 诇讛转谞住讞. 讗讘诇 讘专讙注 砖讗转诐 诪讜讚注讬诐 诇讞诇讜拽讛 讗转诐 讬讻讜诇讬诐 诇谞住讜转 诇讝讛讜转 讗讬讱 讗谞砖讬诐 转讜驻住讬诐 讗转讻诐, 诇谞住讜转 诇谞讞砖 讻诪讜 诪讛 讛拽讜专讜转 讞讬讬诐 砖诇讬 谞专讗讬诐? 讗转 诪讬 讛诐 诪讝讻讬专讬诐? 讗讞专讬 讝讛 讗驻砖专 诇讛转拽讚诐 诇"讗转 诪讬 讗谞讬 专讜爪讛 砖讛诐 讬讝讻讬专讜?" 讜诪讛 讗谞讬 爪专讬讱 诇注砖讜转 讻讚讬 砖拽讜专讜转 讛讞讬讬诐 砖诇讬 讬讛讬讜 讬讜转专 讚讜诪讬诐 诇拽讟讙讜专讬讛 讗诇讬讛 讗谞讬 专讜爪讛 诇讛砖转讬讬讱.