Κορυφαίες 25 ερωτήσεις και απαντήσεις συνέντευξης στο Scala (PDF)

Ακολουθούν ερωτήσεις και απαντήσεις συνέντευξης Scala για πιο φρέσκους αλλά και έμπειρους υποψηφίους για να πάρουν τη δουλειά των ονείρων τους.

 

Scala Συνέντευξη Ερωτήσεις και Απαντήσεις για Freshers

1) Εξηγήστε τι είναι το Scala;

Η Scala είναι μια λειτουργική γλώσσα προγραμματισμού αντικειμένων και σεναρίου για γενικές εφαρμογές λογισμικού που έχουν σχεδιαστεί για να εκφράζουν λύσεις με συνοπτικό τρόπο.


2) Τι είναι ένα «σετ Scala»; Ποιες είναι οι μέθοδοι μέσω των οποίων εκφράζονται σύνολα λειτουργιών;

Το σετ Scala είναι μια συλλογή από ζεύγη στοιχείων του ίδιου τύπου. Το σετ Scala δεν περιέχει διπλότυπα στοιχεία. Υπάρχουν δύο είδη συνόλων, τα μεταβλητά και τα αμετάβλητα.

👉 Δωρεάν λήψη PDF: Ερωτήσεις & Απαντήσεις συνέντευξης Scala >>


3) Τι είναι ο «χάρτης Scala»;

Ο χάρτης Scala είναι μια συλλογή ζευγών κλειδιών ή τιμών. Με βάση το κλειδί του μπορεί να ανακτηθεί οποιαδήποτε τιμή. Οι τιμές δεν είναι μοναδικές, αλλά τα κλειδιά είναι μοναδικά στον Χάρτη.

Ερωτήσεις συνέντευξης Scala


4) Ποιο είναι το πλεονέκτημα του Scala;

Τα πλεονεκτήματα της Scala είναι:

  • Less Λειτουργικό στυλ επιρρεπές σε σφάλματα
  • Υψηλή συντηρησιμότητα και παραγωγικότητα
  • Υψηλή επεκτασιμότητα
  • Υψηλή δοκιμασιμότητα
  • Παρέχει χαρακτηριστικά ταυτόχρονου προγραμματισμού

5) Με ποιους τρόπους η Scala είναι καλύτερη από άλλες γλώσσες προγραμματισμού;

  • Οι πίνακες χρησιμοποιούν κανονικά γενικά, ενώ σε άλλη γλώσσα, τα γενικά είναι βιδωμένα ως εκ των υστέρων και είναι εντελώς ξεχωριστά, αλλά έχουν επικαλυπτόμενες συμπεριφορές με πίνακες.
  • Η Scala έχει αμετάβλητο "val" ως χαρακτηριστικό γλώσσας πρώτης κατηγορίας. Το "val" της σκάλας είναι παρόμοιο με Java τελικές μεταβλητές. Τα περιεχόμενα ενδέχεται να μεταλλάσσονται, αλλά η κορυφαία αναφορά είναι αμετάβλητη.
  • Το Scala επιτρέπει τα 'if blocks', 'for-yield loop' και 'code' σε άγκιστρα για να επιστρέψουν μια τιμή. Είναι προτιμότερο και εξαλείφει την ανάγκη για ξεχωριστό τριαδικό χειριστή.
  • Το Singleton έχει μονότονα αντικείμενα αντί C++/Java/ C# classic static. Είναι μια πιο καθαρή λύση
  • Οι επίμονες αμετάβλητες συλλογές είναι οι προεπιλεγμένες και ενσωματωμένες στην τυπική βιβλιοθήκη.
  • Έχει εγγενείς πλειάδες και συνοπτικό κώδικα
  • Δεν έχει κωδικό πλάκας λέβητα

6) Ποιες είναι οι μεταβλητές Scala;

Αξίες και μεταβλητές είναι δύο σχήματα που έρχονται στη Σκάλα. Μια μεταβλητή τιμής είναι σταθερή και δεν μπορεί να αλλάξει αφού εκχωρηθεί. Είναι αμετάβλητο, ενώ μια κανονική μεταβλητή, από την άλλη πλευρά, είναι μεταβλητή και μπορείτε να αλλάξετε την τιμή.

Οι δύο τύποι μεταβλητών είναι

var myVar : Int=0;

val myVal: Int=1;


7) Αναφέρετε τη διαφορά μεταξύ αντικειμένου και κλάσης;

Μια κλάση είναι ένας ορισμός για μια περιγραφή. Ορίζει έναν τύπο ως προς τις μεθόδους και τη σύνθεση άλλων τύπων. Μια κλάση είναι ένα προσχέδιο του αντικειμένου. Ενώ, ένα αντικείμενο είναι ένα singleton, ένα παράδειγμα μιας κλάσης που είναι μοναδική. Δημιουργείται μια ανώνυμη κλάση για κάθε αντικείμενο στον κώδικα, κληρονομείται από όποιες κλάσεις δηλώσατε αντικείμενο για υλοποίηση.


8) Τι είναι η αναδρομική ουρά στη σκάλα;

Το 'Recursion' είναι μια συνάρτηση που καλεί τον εαυτό της. Μια συνάρτηση που αυτοαποκαλείται, για παράδειγμα, μια συνάρτηση «Α» καλεί τη συνάρτηση «Β», η οποία καλεί τη συνάρτηση «C». Είναι μια τεχνική που χρησιμοποιείται συχνά στον λειτουργικό προγραμματισμό. Για να υπάρχει μια αναδρομική ουρά, η κλήση πίσω στη συνάρτηση πρέπει να είναι η τελευταία συνάρτηση που θα εκτελεστεί.


9) Τι είναι το «χαρακτηριστικό της κλίμακας» στη σκάλα;

Τα «χαρακτηριστικά» χρησιμοποιούνται για τον ορισμό τύπων αντικειμένων που καθορίζονται από την υπογραφή των υποστηριζόμενων μεθόδων. Το Scala επιτρέπει τη μερική εφαρμογή, αλλά τα χαρακτηριστικά μπορεί να μην έχουν παραμέτρους κατασκευαστή. Ένα χαρακτηριστικό αποτελείται από τον ορισμό μεθόδου και πεδίου, με την ανάμειξή τους σε κλάσεις μπορεί να επαναχρησιμοποιηθεί.


10) Πότε μπορείτε να χρησιμοποιήσετε χαρακτηριστικά;

Δεν υπάρχει συγκεκριμένος κανόνας για το πότε μπορείτε να χρησιμοποιήσετε χαρακτηριστικά, αλλά υπάρχει μια οδηγία που μπορείτε να λάβετε υπόψη.

  • Εάν η συμπεριφορά δεν θα επαναχρησιμοποιηθεί, τότε κάντε την συγκεκριμένη κατηγορία. Εν πάση περιπτώσει, δεν είναι μια επαναχρησιμοποιήσιμη συμπεριφορά.
  • Για να κληρονομήσει κανείς από αυτό μέσα Java κώδικα, μπορεί να χρησιμοποιηθεί μια αφηρημένη κλάση.
  • Εάν η αποτελεσματικότητα είναι προτεραιότητα, τότε κλίνετε προς τη χρήση μιας τάξης
  • Κάντε το χαρακτηριστικό εάν μπορεί να επαναχρησιμοποιηθεί σε πολλαπλές και άσχετες τάξεις. Σε διαφορετικά μέρη της ιεραρχίας της τάξης μόνο τα χαρακτηριστικά μπορούν να αναμειχθούν σε διαφορετικά μέρη.
  • Μπορείτε να χρησιμοποιήσετε την αφηρημένη κλάση, εάν θέλετε να τη διανείμετε σε μεταγλωττισμένη μορφή και περιμένετε από εξωτερικές ομάδες να γράψουν κλάσεις κληρονομώντας από αυτήν.

Ερωτήσεις συνέντευξης Scala για έμπειρους

11) Τι είναι τα Case Classes;

Οι τάξεις περίπτωσης παρέχουν έναν αναδρομικό μηχανισμό αποσύνθεσης μέσω αντιστοίχισης προτύπων, είναι κανονικές κλάσεις που εξάγουν την παράμετρο του κατασκευαστή τους. Οι παράμετροι του κατασκευαστή των κλάσεων περίπτωσης μπορούν να προσπελαστούν απευθείας και αντιμετωπίζονται ως δημόσιες τιμές.


12) Ποια είναι η χρήση των πλειάδων στη σκάλα;

Οι πλειάδες Scala συνδυάζουν έναν σταθερό αριθμό αντικειμένων μαζί, έτσι ώστε να μπορούν να μεταφερθούν ολόκληρα. Μια πλειάδα είναι αμετάβλητη και μπορεί να κρατήσει αντικείμενα με διαφορετικούς τύπους, σε αντίθεση με έναν πίνακα ή μια λίστα.


13) Τι είναι η λειτουργία currying στη Scala;

Το Currying είναι η τεχνική μετατροπής μιας συνάρτησης που παίρνει πολλαπλά ορίσματα σε μια συνάρτηση που παίρνει ένα μόνο όρισμα Πολλές από τις ίδιες τεχνικές όπως η γλώσσα όπως η Haskell και η LISP υποστηρίζονται από τη Scala. Το Function Currying είναι ένα από τα λιγότερο χρησιμοποιημένα και παρεξηγημένα.


14) Ποιες είναι οι σιωπηρές παράμετροι στο Scala;

Η σιωπηρή παράμετρος είναι ο τρόπος που επιτρέπει να «ευρεθούν» οι παράμετροι μιας μεθόδου. Είναι παρόμοιο με τις προεπιλεγμένες παραμέτρους, αλλά έχει διαφορετικό μηχανισμό για την εύρεση της "προεπιλεγμένης" τιμής. Η σιωπηρή παράμετρος είναι μια παράμετρος στη μέθοδο ή τον κατασκευαστή που επισημαίνεται ως σιωπηρή. Αυτό σημαίνει ότι εάν μια τιμή παραμέτρου δεν αναφέρεται, τότε ο μεταγλωττιστής θα αναζητήσει μια "σιωπηρή" τιμή που ορίζεται σε ένα πεδίο.


15) Τι είναι το κλείσιμο στη Scala;

Το κλείσιμο είναι μια συνάρτηση της οποίας η τιμή επιστροφής εξαρτάται από την τιμή των μεταβλητών που δηλώνονται εκτός της συνάρτησης.


16) Τι είναι το Monad στη Σκάλα;

Μονάδα είναι ένα αντικείμενο που τυλίγει ένα άλλο αντικείμενο. Περνάτε τα μίνι προγράμματα Monad, δηλαδή τις συναρτήσεις, για να εκτελέσετε τον χειρισμό δεδομένων του υποκείμενου αντικειμένου, αντί να χειριστείτε απευθείας το αντικείμενο. Η Monad επιλέγει τον τρόπο εφαρμογής του προγράμματος στο υποκείμενο αντικείμενο.


17) Τι είναι η ανώνυμη συνάρτηση Scala;

Σε έναν πηγαίο κώδικα, οι ανώνυμες συναρτήσεις ονομάζονται «κυριολεκτικά συναρτήσεων» και κατά τον χρόνο εκτέλεσης, οι κυριολεκτικές συναρτήσεις εγκαθίστανται σε αντικείμενα που ονομάζονται τιμές συναρτήσεων. Το Scala παρέχει μια σχετικά εύκολη σύνταξη για τον ορισμό ανώνυμων συναρτήσεων.


18) Εξηγήστε τις συναρτήσεις 'Scala ανώτερης τάξης';

Το Scala επιτρέπει τον ορισμό συναρτήσεων υψηλότερης τάξης. Αυτές είναι συναρτήσεις που λαμβάνουν άλλες συναρτήσεις ως παραμέτρους ή των οποίων το αποτέλεσμα είναι μια συνάρτηση. Στο παρακάτω παράδειγμα, η συνάρτηση application () παίρνει μια άλλη συνάρτηση 'f' και μια τιμή 'v' και εφαρμόζει τη συνάρτηση στο v.

Παράδειγμα:

object Test {

def main(args: Array[String]) {

println( apply( layout, 10) )

}

def apply(f: Int => String, v: Int) = f(v)

def layout[A](x: A) = "[" + x.toString() + "]"

Όταν ο παραπάνω κώδικας μεταγλωττιστεί και εκτελεστεί, παράγει το ακόλουθο αποτέλεσμα.

C:/>scalac Test.scala
C:/>scala Test
[10]
C:/>

19) Ποια είναι η διαφορά μεταξύ var και τιμής;

Στο Scala, μπορείτε να ορίσετε μια μεταβλητή χρησιμοποιώντας λέξεις-κλειδιά είτε a, val είτε var. Η διαφορά μεταξύ val και var είναι ότι το var μοιάζει πολύ με τη δήλωση java, αλλά το val είναι λίγο διαφορετικό. Δεν μπορούμε να αλλάξουμε την αναφορά σε άλλη αναφορά, αφού η μεταβλητή δηλωθεί χρησιμοποιώντας val. Η μεταβλητή που ορίζεται χρησιμοποιώντας λέξεις-κλειδιά var είναι μεταβλητή και μπορεί να αλλάξει όσες φορές.


20) Τι είναι το option, μερικά και κανένα στο scala;

Το "Option" είναι ένας γενικός τύπος Scala που μπορεί να είναι "κάποια" γενική τιμή ή καμία. Το "Queue" το χρησιμοποιεί συχνά για να αναπαραστήσει πρωτόγονα που μπορεί να είναι μηδενικά.


21) Πώς μπορώ να προσαρτήσω τη λίστα;

Στην κλίμακα για προσθήκη σε μια λίστα, χρησιμοποιήστε ":+” single value

var myList = List.empty[String]
myList :+= "a"
myList :+= "b"
myList :+= "c"
use++ for appending a list
var myList = List.empty[String]
myList ++= List("a", "b", "c")

22) Πώς μπορείτε να μορφοποιήσετε μια συμβολοσειρά;

Για να μορφοποιήσετε μια συμβολοσειρά, χρησιμοποιήστε τη μέθοδο .format (), στην κλίμακα που μπορείτε να χρησιμοποιήσετε

Val formatted= “%s %i”.format (mystring.myInt)


23) Γιατί η scala προτιμά την αμετάβλητη;

Η Scala προτιμά την αμετάβλητη σχεδίαση και σε πολλές περιπτώσεις τη χρησιμοποιεί ως προεπιλογή. Το αμετάβλητο μπορεί να βοηθήσει όταν αντιμετωπίζουμε ζητήματα ισότητας ή παράλληλα προγράμματα.


24) Ποιοι είναι οι τέσσερις τύποι αναγνωριστικών κλίμακας;

Οι τέσσερις τύποι αναγνωριστικών είναι

  • Αλφαριθμητικά αναγνωριστικά
  • Operator αναγνωριστικά
  • Μικτά αναγνωριστικά
  • Κυριολεκτικά αναγνωριστικά

25) Ποιοι είναι οι διαφορετικοί τύποι Scala literals;

Οι διαφορετικοί τύποι κυριολεκτικών στη σκάλα είναι

  • Ακέραιοι αριθμοί
  • Κυριολεκτικά κινητής υποδιαστολής
  • Boolean κυριολεκτικά
  • Κυριολεκτικά σύμβολα
  • Κυριολεκτικά χαρακτήρες
  • Γραμματοσειρές συμβολοσειράς
  • Χορδές πολλαπλών γραμμών

Αυτές οι ερωτήσεις συνέντευξης θα βοηθήσουν επίσης στο viva (προφορικά) σας