একটি স্লাইসের শেষ উপাদানটি কীভাবে পাবেন?


166

এক স্লাইসের শেষ উপাদানটি বের করার জন্য কী উপায়?

var slice []int

slice = append(slice, 2)
slice = append(slice, 7)

slice[len(slice)-1:][0] // Retrieves the last element

উপরের সমাধানটি কাজ করে তবে বিশ্রী মনে হয়।

উত্তর:


295

কেবল একটি স্লাইসের শেষ উপাদানটি পড়ার জন্য:

sl[len(sl)-1]

এটি অপসারণ করার জন্য:

sl = sl[:len(sl)-1]

স্লাইস ট্রিকস সম্পর্কে এই পৃষ্ঠাটি দেখুন


34
একটি গুচ্ছ ধন্যবাদ! যদিও এটি নির্বোধ বলে মনে হচ্ছে তারা -1পাইথনের সূচকটি যুক্ত করেনি ...
মরগান উইল্ড

3
আমি -1পাইথন থেকে পছন্দ করি , যদিও এটি প্রায়শই হার্ড-টু-ডিবাগ ত্রুটির দিকে পরিচালিত করে।
weberc2

11
তারা সচেতনভাবে এটিকে বাইরে রেখেছিল। এটি অ-সুস্পষ্ট এবং ত্রুটির প্রবণ ছিল। সামগ্রিকভাবে যান 'খুব বেশি অর্থ' সম্পর্কে পরিবেশন করা; এটিতে পদ্ধতি / অপারেটর ওভারলোডিং, ফাংশন প্যারামগুলির জন্য ডিফল্ট মান ইত্যাদির বৈশিষ্ট্যও নেই যা আইএমএইচও একই ধরণের দার্শনিক শিরায় চলে। এই আলোচনাটি এবং অন্যান্যগুলি দেখুন: groups.google.com/forum/#!topic/golang-nuts/yn9Q6HhgWi0
টনি কর্ডেনাস

2
আমি নিশ্চিত নই কিন্তু আমি পেয়েছিলাম panic: runtime error: index out of rangeজন্য profiles[len(profiles)-1].UserId, আমি অনুমান ফালি দৈর্ঘ্য 0 তাই এটি প্যানিক সৃষ্টি হয়?
tom10271

@ tom10271 হ্যাঁ, স্লাইসের শেষ উপাদানটি যদি এমন কোনও উপাদান না থাকে তবে আপনি পাবেন না। যদি কোনও উপাদান নেই।
টনি কর্ডেনাস

-10

বিট কম মার্জিত কিন্তু এছাড়াও করতে পারেন:

sl[len(sl)-1: len(sl)]

3
এটি একইরকম sl[len(sl)-1:]তবে এটি কেবল শেষ উপাদানটির চেয়ে শেষ উপাদান যুক্ত একটি ফালি দেয়। play.golang.org/p/kcThrqa-64c
ভিক্টর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.